home *** CD-ROM | disk | FTP | other *** search
/ PC Player 2004 May / pc player 2004-05.iso / Demos / FarCry / Data1.cab / _FA09C415526B43D8B6DC822EADB8AF9D < prev    next >
Encoding:
Text File  |  2004-01-06  |  105.1 KB  |  3,651 lines

  1. ; Effector Script file
  2. ; Copyright (c) 2001
  3. ; Created by Vladimir Kajalin
  4.  
  5.  
  6.  
  7. Version (1.00)
  8.  
  9. // low spec shader shader (with pixel shader support)
  10. #define LOWSPEC_WATER_SHADER                 \    
  11.   HW 'Seq'  \
  12.   (         \    
  13.     Array (Verts 3 FLOAT Vertex)  \      
  14.     ShadeLayer  \
  15.     (       \
  16.       CGVProgram  = CGVProgLowMedWater  \
  17.       CGVPParam ( Name = CameraPos Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2')  \
  18.       CGVPParam ( Name = TexShiftRipple Comp = 1 Comp = 1 Comp 'time 0.01' Comp 'time 0.01')  \
  19.       CGVPParam ( Name = TexGenRipple0 Comp = 0.125 Comp = 0 Comp = 0 Comp = 0) \
  20.       CGVPParam ( Name = TexGenRipple1 Comp = 0 Comp = 0.125 Comp = 0 Comp = 0) \
  21.       CGVPParam ( Name = TexDetailScale Comp = 0.2 Comp = 0.2  Comp = 0 Comp = 2.0)  \      
  22.       CGPShader   = CGRCLowMedWater   \
  23.       CGPSParam ( Name = Matrix Comp = 0.02 Comp = 0 Comp = 0 Comp = 0.02 )   \
  24.       CGPSParam ( Name = Ambient Comp 'WorldObjColor[0]'  Comp 'WorldObjColor[1]' Comp 'WorldObjColor[2]' Comp = 0.4 )   \
  25.       CGPSParam ( Name = WaterColor Comp = 0.5 Comp = 0.7 Comp = 1.0 User 'LowSpecOpacity')   \
  26.       Layer '0'   \
  27.       ( \
  28.         TexType = DSDTBump  \
  29.         TexFilter = TriLinear  \
  30.         Sequence (Maps = textures/animated/water/caust##00_31_ddt Time = 0.05 Loop )  \
  31.         TexColorOp = NoSet \
  32.       ) \
  33.       Layer '1' \
  34.       (         \            
  35.         Map =  waterbump.dds   \
  36.         TexColorOp = NoSet            \
  37.         DepthWrite = 0                \
  38.         Blend    'SRC_ALPHA ONE_MINUS_SRC_ALPHA'  \        
  39.       )             \
  40.     )               \
  41.   )                 \
  42.  
  43. // water refraction shared parameters    
  44. #define WATER_REFRACTION_PARAMS     \
  45.     float 'ColorR' (0.1)  \
  46.     float 'ColorG' (0.35) \
  47.     float 'ColorB' (0.36) \    
  48.     float 'AnimSpeed' (0.5) \
  49.     float 'RefrTillingAmount' (2.5) \
  50.     float 'RefrBumpAmount' (0.05) \
  51.     float 'LowSpecOpacity' (1.0) \
  52.     
  53. // water refraction pass (cheap)
  54. #define WATER_REFRACTION                 \        
  55.   #ifdef PROJECTEDENVBUMP \
  56.     ShadeLayer  \
  57.     (     \
  58.       CGVProgram  = CGVProgOutdoorWaterRefraction \
  59.       CGVPParam ( Name = CameraPos Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2')      \
  60.       CGVPParam ( Name = ScreenSize Comp 'ScreenSize pos 0' Comp 'ScreenSize pos 1' Comp = 0 Comp = 0)  \      
  61.       CGVPParam ( Name = TexShiftRipple Comp = 0 Comp = 0 Comp 'time 0.06' Comp 'time 0.12')  \
  62.       CGVPParam ( Name = TexGenRipple0 Comp = 0.125 Comp = 0 Comp = 0 Comp = 0)   \
  63.       CGVPParam ( Name = TexGenRipple1 Comp = 0 Comp = 0.125 Comp = 0 Comp = 0)   \
  64.       CGVPParam ( Name = TexDetailScale User 'RefrTillingAmount' User 'RefrTillingAmount'  Comp = 0 User 'AnimSpeed')       \                  
  65.       CGPShader   = CGRCOutdoorWaterRefraction  \
  66.       CGPSParam ( Name = Matrix Comp =0.025 Comp = 0 Comp = 0 Comp =0.025 ) \
  67.       CGPSParam ( Name = Ambient Comp 'WorldObjColor[0]'  Comp 'WorldObjColor[1]' Comp 'WorldObjColor[2]' Comp =1 ) \
  68.       CGPSParam ( Name = WaterColor User 'ColorR' User 'ColorG' User 'ColorB' Comp =1 )   \
  69.       Layer '0' \
  70.       (          \
  71.         Map =   fire_noise.dds  \
  72.         TexType = DSDTBump  \
  73.       ) \      
  74.       Layer '1' \
  75.       ( \
  76.         Projected \
  77.         Map =  $ScreenTexMap                                  \
  78.         TexColorOp = NoSet  \
  79.         DepthWrite = 0             \
  80.         Blend    'SRC_ALPHA ONE_MINUS_SRC_ALPHA'  \
  81.       ) \
  82.     )   \
  83.  #endif \
  84.         
  85. // really low spec shader shader... (no pixel shaders support)
  86. Shader 'LowSpecWater_FP'
  87. (
  88.   Public
  89.   (
  90.   )
  91.   Params
  92.   (
  93.     Sort = Water
  94.     Cull = TwoSided
  95.   )
  96.  
  97.   HW 'Seq'
  98.   (
  99.     Array (Verts 3 FLOAT Vertex)
  100.     Array (Color 4 BYTE Color)
  101.  
  102.     ShadeLayer
  103.     (
  104.       Layer '0'
  105.       (
  106.         Sequence
  107.         (
  108.           Maps = textures/animated/water/caust_xb_##00_00
  109.           Time = 0.5 
  110.           Loop
  111.         ) 
  112.           
  113.         TexGen               'HW_ObjectLinear'
  114.         {
  115.           Mask = 3
  116.           PlaneS (Comp = 0.125 Comp = 0 Comp = 0 Comp 'time 0.1')
  117.           PlaneT (Comp = 0 Comp = 0.125 Comp = 0 Comp = 0)
  118.         }       
  119.         TexColorOp = modulate
  120.         TexAlphaOp = add
  121.         TexColorArg0 = Diffuse
  122.         TexColorArg1 = Texture
  123.         TexAlphaArg0 = Diffuse
  124.         TexAlphaArg1 = Constant
  125.       )
  126.     
  127.       Layer '1'  
  128.       (
  129.         Sequence
  130.         (
  131.           Maps = textures/animated/water/caust_xb_##00_00
  132.           Time = 0.5 
  133.           Loop
  134.         ) 
  135.  
  136.         TexGen               'HW_ObjectLinear'
  137.         {
  138.           Mask = 3
  139.           PlaneS (Comp = 0.060 Comp = 0 Comp = 0 Comp 'time -0.1')
  140.           PlaneT (Comp = 0 Comp = 0.060 Comp = 0 Comp = 0)
  141.         }       
  142.         TexColorOp = Modulate
  143.         RgbGen 'Fixed' (1 1 1 0.2)
  144.  
  145.         Blend 'SRC_ALPHA ONE_MINUS_SRC_ALPHA'
  146.         DepthWrite = 0
  147.       )
  148.     )
  149.   )
  150. )
  151.  
  152. Shader 'TerrainWater_CM_PS20'
  153. (
  154.   Public
  155.   (
  156.     float 'WaveSpeedX' (0.1)
  157.     float 'WaveSpeedY' (0.2)
  158.     float 'NoiseSpeed' (0.1)
  159.     float 'FadeBias' (0.5)
  160.     float 'FadeExp' (6.0)
  161.     float 'Color_R' (0.5)
  162.     float 'Color_G' (0.5)
  163.     float 'Color_B' (0.5)
  164.     float 'Opacity' (1.0)
  165.   )
  166.   Params
  167.   (
  168.     Sort = Water
  169.     Cull = TwoSided  
  170.   )
  171.  
  172.   HW 'Seq'  
  173.   ( 
  174.     Array (Verts 3 FLOAT Vertex)  
  175.     Array (Color 4 BYTE Color)  
  176.         
  177.     ShadeLayer  
  178.     ( 
  179.       CGPShader = CGRCWater_PS20
  180.       CGPSParam (Name = FadeParams User 'FadeBias' User 'FadeExp')
  181.       CGPSParam (Name = TimeParams Comp 'Time 1' User 'WaveSpeedX' User 'WaveSpeedY' User 'NoiseSpeed')
  182.       CGPSParam (Name = WaterColor User 'Color_R' User 'Color_G' User 'Color_B' User 'Opacity')
  183.       
  184.       CGVProgram = CGVProgWater_VS20
  185.       CGVPParam ( Name = CameraPos Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2')
  186.       CGVPParam ( Name = Normal Comp=0 Comp=0 Comp=1)
  187.       CGVPParam ( Name = Scale Comp=0.1 Comp=0.1 Comp=0.1)
  188.  
  189.       Layer '0' 
  190.       ( 
  191.         Map = $NoiseVolume
  192.         TexFilter = TriLinear
  193.         TexType = Volume
  194.       ) 
  195.       Layer '1'
  196.       (
  197.         Map = TEXTURES\water
  198.         TexType = CubeMap   
  199.         TexColorOp = NoSet
  200.         TexFilter = TriLinear
  201.  
  202.         Blend 'SRC_ALPHA ONE_MINUS_SRC_ALPHA' 
  203.         DepthWrite = 0  
  204.       )
  205.     )  
  206.   )   
  207. )
  208.  
  209. Shader 'TemplWater_CM_PS20'
  210. (
  211.   Public
  212.   (
  213.     float 'WaveSpeedX' (0.1)
  214.     float 'WaveSpeedY' (0.2)
  215.     float 'NoiseSpeed' (0.1)
  216.     float 'FadeBias' (0.5)
  217.     float 'FadeExp' (6.0)
  218.     float 'Color_R' (0.5)
  219.     float 'Color_G' (0.5)
  220.     float 'Color_B' (0.5)
  221.     float 'WaveScaleX' (0.1)
  222.     float 'WaveScaleY' (0.1)
  223.     float 'WaveScaleZ' (0.1)
  224.   )
  225.   Params
  226.   (
  227.   )
  228.  
  229.   HW 'Seq'  
  230.   ( 
  231.     Array (Verts 3 FLOAT Vertex)  
  232.     Array (Color 4 BYTE Color)  
  233.         
  234.     ShadeLayer  
  235.     ( 
  236.       CGPShader = CGRCWater_PS20
  237.       CGPSParam (Name = FadeParams User 'FadeBias' User 'FadeExp')
  238.       CGPSParam (Name = TimeParams Comp 'Time 1' User 'WaveSpeedX' User 'WaveSpeedY' User 'NoiseSpeed')
  239.       CGPSParam (Name = WaterColor User 'Color_R' User 'Color_G' User 'Color_B' Comp 'Opacity')
  240.       
  241.       CGVProgram = CGVProgWater2_VS20
  242.       CGVPParam ( Name = CameraPos Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2')
  243.       CGVPParam ( Name = Scale User 'WaveScaleX' User 'WaveScaleY' User 'WaveScaleZ')
  244.  
  245.       Layer '0' 
  246.       ( 
  247.         Map = $NoiseVolume
  248.         TexType = Volume
  249.       ) 
  250.       Layer '1'
  251.       (
  252.         Map = $Cubemap
  253.         TexType = CubeMap   
  254.         TexColorOp = NoSet
  255.       )
  256.     )  
  257.   )   
  258. )
  259.  
  260. Shader 'TemplWater_RTCM_PS20'
  261. (
  262.   Public
  263.   (
  264.     float 'WaveSpeedX' (0.1)
  265.     float 'WaveSpeedY' (0.2)
  266.     float 'NoiseSpeed' (0.1)
  267.     float 'FadeBias' (0.5)
  268.     float 'FadeExp' (6.0)
  269.     float 'Color_R' (0.5)
  270.     float 'Color_G' (0.5)
  271.     float 'Color_B' (0.5)
  272.     float 'WaveScaleX' (0.1)
  273.     float 'WaveScaleY' (0.1)
  274.     float 'WaveScaleZ' (0.1)
  275.   )
  276.   RenderParams
  277.   {
  278.     DrawFarSprites
  279.     DrawStaticObjects
  280.     DrawParticles
  281.     DrawEntities
  282.     DrawIndoors
  283.     DrawDetailTextures
  284.     DrawWater
  285.     FullDetailTerrain
  286.     DrawTerrain
  287.   }
  288.   Params
  289.   (
  290.   )
  291.  
  292.   HW 'Seq'  
  293.   ( 
  294.     Array (Verts 3 FLOAT Vertex)  
  295.     Array (Color 4 BYTE Color)  
  296.         
  297.     ShadeLayer  
  298.     ( 
  299.       CGPShader = CGRCWater_PS20
  300.       CGPSParam (Name = FadeParams User 'FadeBias' User 'FadeExp')
  301.       CGPSParam (Name = TimeParams Comp 'Time 1' User 'WaveSpeedX' User 'WaveSpeedY' User 'NoiseSpeed')
  302.       CGPSParam (Name = WaterColor User 'Color_R' User 'Color_G' User 'Color_B' Comp 'Opacity')
  303.       
  304.       CGVProgram = CGVProgWater2_VS20
  305.       CGVPParam ( Name = CameraPos Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2')
  306.       CGVPParam ( Name = Scale User 'WaveScaleX' User 'WaveScaleY' User 'WaveScaleZ')
  307.  
  308.       Layer '0' 
  309.       ( 
  310.         Map = $NoiseVolume
  311.         TexType = Volume
  312.       ) 
  313.       Layer '1'
  314.       (
  315.         Map = $EnvironmentCubeMap
  316.         TexType = CubeMap   
  317.         TexColorOp = NoSet
  318.       )
  319.     )  
  320.   )   
  321. )
  322.  
  323. Shader 'TerrainWater_CM'
  324. (
  325.   Public
  326.   {
  327.     float 'BumpAmountX' (0.012)
  328.     float 'BumpAmountY' (0.010)
  329.     float 'FresnelBias' (0.2)
  330.     float 'FresnelScale' (2)
  331.     float 'FresnelPower' (2)
  332.     float 'Color_R' (0.5)
  333.     float 'Color_G' (0.5)
  334.     float 'Color_B' (0.5)
  335.   }
  336.   HW 'Seq'
  337.   (
  338.     ShadeLayer
  339.     (
  340.       CGPShader = CGRCWaterReflectCMap
  341.       CGPSParam (Name = WaterColor User 'Color_R' User 'Color_G' User 'Color_B' Comp 'Opacity')
  342.  
  343.       CGVProgram = CGVProgWaterBumpReflCM_PS
  344.       CGVPParam ( Name = CameraPos Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2')
  345.       CGVPParam ( Name = Binormal Comp = 0 Comp = -1 Comp = 0 ) // Binormal
  346.       CGVPParam ( Name = Normal Comp = 0 Comp = 0 Comp = 1 )  // Normal
  347.       CGVPParam ( Name = TexGenRipple0 Comp = 0.125 Comp = 0 Comp = 0 Comp = 0)  // Ripple texgen
  348.       CGVPParam ( Name = TexGenRipple1 Comp = 0 Comp = 0.125 Comp = 0 Comp = 0)  // Ripple texgen
  349.       CGVPParam ( Name = TexShiftRipple Comp 'time 0.06' Comp 'time 0.12' Comp=0)  // xy = ripple uv ADDer
  350.       CGVPParam ( Name = ObjToCubeSpace InvObjMatrix)
  351.       CGVPParam ( Name = BumpScale User 'BumpAmountX' User 'BumpAmountY')
  352.       CGVPParam ( Name = Fresnel User 'FresnelPower' User 'FresnelScale' User 'FresnelBias' Comp=0)
  353.       CGVPParam ( Name = ObjMatrix ObjMatrix)
  354.  
  355.       Layer '0'
  356.       (
  357.         TexType = Bump
  358.         TexFilter = TriLinear
  359.         Sequence (Maps = textures/animated/water/caust##00_31_ddn Time = 0.05 Loop)
  360.         TexColorOp = NoSet
  361.       )
  362.       Layer '1'
  363.       (
  364.         Map = $None
  365.         TexColorOp = NoSet
  366.       )
  367.       Layer '2'
  368.       (
  369.         Map = $None
  370.         TexColorOp = NoSet
  371.       )
  372.       Layer '3'
  373.       (
  374.         Map = textures/Water
  375.         TexType = Cubemap
  376.         TexColorOp = NoSet
  377.         Blend   'SRC_ALPHA ONE_MINUS_SRC_ALPHA'
  378.       )
  379.     )
  380.   )
  381. )
  382.  
  383. Shader 'TemplWater_CM'
  384. (
  385.   Public
  386.   {
  387.     float 'BumpAmountX' (0.012)
  388.     float 'BumpAmountY' (0.010)
  389.     float 'FresnelBias' (0.2)
  390.     float 'FresnelScale' (2)
  391.     float 'FresnelPower' (2)
  392.     float 'Color_R' (0.5)
  393.     float 'Color_G' (0.5)
  394.     float 'Color_B' (0.5)
  395.   }
  396.   HW 'Seq'
  397.   (
  398.     ShadeLayer
  399.     (
  400.       CGPShader = CGRCWaterReflectCMap
  401.       CGPSParam (Name = WaterColor User 'Color_R' User 'Color_G' User 'Color_B' Comp 'Opacity')
  402.  
  403.       CGVProgram = CGVProgWater2BumpReflCM_PS
  404.       CGVPParam ( Name = CameraPos Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2')
  405.       CGVPParam ( Name = ObjToCubeSpace InvObjMatrix)
  406.       CGVPParam ( Name = BumpScale User 'BumpAmountX' User 'BumpAmountY')
  407.       CGVPParam ( Name = Fresnel User 'FresnelPower' User 'FresnelScale' User 'FresnelBias' Comp=0)
  408.       CGVPParam ( Name = ObjMatrix ObjMatrix)
  409.  
  410.       Layer '0'
  411.       (
  412.         Map = $Bump
  413.         TexType = Bump
  414.         TexColorOp = NoSet
  415.       )
  416.       Layer '1'
  417.       (
  418.         Map = $None
  419.         TexColorOp = NoSet
  420.       )
  421.       Layer '2'
  422.       (
  423.         Map = $None
  424.         TexColorOp = NoSet
  425.       )
  426.       Layer '3'
  427.       (
  428.         Map = $Cubemap
  429.         TexType = Cubemap
  430.         TexColorOp = NoSet
  431.       )
  432.     )
  433.   )
  434. )
  435.  
  436. Shader 'TemplWater_RTCM'
  437. (
  438.   Public
  439.   {
  440.     float 'BumpAmountX' (0.012)
  441.     float 'BumpAmountY' (0.010)
  442.     float 'FresnelBias' (0.2)
  443.     float 'FresnelScale' (2)
  444.     float 'FresnelPower' (2)
  445.     float 'Color_R' (0.5)
  446.     float 'Color_G' (0.5)
  447.     float 'Color_B' (0.5)
  448.   }
  449.   RenderParams
  450.   {
  451.     DrawFarSprites
  452.     DrawStaticObjects
  453.     DrawParticles
  454.     DrawEntities
  455.     DrawIndoors
  456.     DrawDetailTextures
  457.     DrawWater
  458.     FullDetailTerrain
  459.     DrawTerrain
  460.   }
  461.   HW 'Seq'
  462.   (
  463.     ShadeLayer
  464.     (
  465.       CGPShader = CGRCWaterReflectCMap
  466.       CGPSParam (Name = WaterColor User 'Color_R' User 'Color_G' User 'Color_B' Comp 'Opacity')
  467.  
  468.       CGVProgram = CGVProgWater2BumpReflCM_PS
  469.       CGVPParam ( Name = CameraPos Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2')
  470.       CGVPParam ( Name = ObjToCubeSpace InvObjMatrix)
  471.       CGVPParam ( Name = BumpScale User 'BumpAmountX' User 'BumpAmountY')
  472.       CGVPParam ( Name = Fresnel User 'FresnelPower' User 'FresnelScale' User 'FresnelBias' Comp=0)
  473.       CGVPParam ( Name = ObjMatrix ObjMatrix)
  474.  
  475.       Layer '0'
  476.       (
  477.         Map = $Bump
  478.         TexType = Bump
  479.         TexColorOp = NoSet
  480.       )
  481.       Layer '1'
  482.       (
  483.         Map = $None
  484.         TexColorOp = NoSet
  485.       )
  486.       Layer '2'
  487.       (
  488.         Map = $None
  489.         TexColorOp = NoSet
  490.       )
  491.       Layer '3'
  492.       (
  493.         Map = $EnvironmentCubeMap
  494.         TexType = Cubemap
  495.         TexColorOp = NoSet
  496.       )
  497.     )
  498.   )
  499. )
  500.      
  501. Shader 'TerrainWater'
  502. (
  503.   Public
  504.   (
  505.     float 'BumpAmountX' (0.012)
  506.     float 'BumpAmountY' (0.010)
  507.     float 'RefrBumpAmountX' (0.012)
  508.     float 'RefrBumpAmountY' (0.010)
  509.     float 'WaveAmplitude' (0.1)
  510.     float 'ReflectAmount' (0.9)
  511.     float 'ReflectAddAmount' (0.2)
  512.     float 'Opacity' (1)   
  513.     
  514.     // water refraction shared parameters    
  515.     WATER_REFRACTION_PARAMS
  516.   )
  517.   
  518.   Params
  519.   (
  520.     Sort = Water
  521.     Cull = TwoSided
  522.     ClipPlane = Back    
  523.   )
  524.   
  525.   RenderParams
  526.   {
  527.     DrawFarSprites
  528.     DrawStaticObjects
  529.     DrawParticles
  530.     DrawEntities
  531.     DrawIndoors
  532.     //UpdateFactor = 0.001
  533.     FullDetailTerrain
  534.     DrawTerrain
  535.   }
  536.  
  537.   HW
  538.   (
  539.     Conditions
  540.     {
  541.       Vars
  542.       {
  543.         r_PolygonMode = 2
  544.       }
  545.     }
  546.     
  547.     Array (Verts 3 FLOAT Vertex)
  548.     Array (Color 4 BYTE Color)
  549.  
  550.     ShadeLayer
  551.     (
  552.       Layer '1'
  553.       (
  554.         Map                  = Textures/liquids/W01blue03
  555.         //Procedure            = HeavyRain01
  556.         TexGen               'HW_ObjectLinear'
  557.         {
  558.           Mask = 3
  559.           PlaneS (Comp = 0.125 Comp = 0 Comp = 0 Comp 'CameraPos pos 0 / 8')
  560.           PlaneT (Comp = 0 Comp = 0.125 Comp = 0 Comp 'CameraPos pos 1 / 8')
  561.         }
  562.         Blend                'SRC_ALPHA ONE_MINUS_SRC_ALPHA'
  563.         //RgbGen               'Fixed' (0.6 0.6 0.6 0.6)
  564.         TexColorOp = Modulate
  565.         DepthWrite = 1
  566.       )
  567.     )
  568.   )
  569.  
  570.   HW 'Seq'
  571.   (
  572.     Conditions
  573.     {
  574.       Vars
  575.       {
  576.         r_WaterRefractions = 1
  577.         r_WaterReflections = 1
  578.       }
  579.     }
  580.   
  581.     Array (Verts 3 FLOAT Vertex)
  582.     Array (Color 4 BYTE Color)
  583.     //Array (Texture0 2 Float Texture0)
  584.  
  585.  
  586.     // water refraction pass (cheap)
  587.     WATER_REFRACTION
  588.  
  589.     ShadeLayer
  590.     (
  591.       CGPShader   = CGRCWater
  592.       CGPSParam ( Name = Matrix User 'BumpAmountX' Comp = 0 Comp = 0 User 'BumpAmountY' )
  593.       CGPSParam ( Name = WaterColor Comp = 1 Comp = 1 Comp = 1 Comp = 1)  // Water color
  594.       CGPSParam ( Name = ReflectAmount User 'ReflectAmount' User 'ReflectAmount' User 'ReflectAmount' User 'Opacity')  // Water color
  595.       CGPSParam ( Name = ReflectAddAmount User 'ReflectAddAmount' User 'ReflectAddAmount' User 'ReflectAddAmount' Comp = 1)  // Water color
  596.  
  597.       CGVProgram = CGVProgWater
  598.       CGVPParam ( Name = CameraPos Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2' Comp = 0.15)
  599.       CGVPParam ( Name = TexShiftRipple Comp 'time 0.06' Comp 'time 0.12')  // xy = ripple uv ADDer
  600.       CGVPParam ( Name = TexGenRipple0 Comp = 0.125 Comp = 0 Comp = 0 Comp = 0)  // Ripple texgen
  601.       CGVPParam ( Name = TexGenRipple1 Comp = 0 Comp = 0.125 Comp = 0 Comp = 0)  // Ripple texgen
  602.       CGVPParam ( Name = TexDetailScale Comp = 0.08 Comp = 0.08 )  // xy = detail uv Scale
  603.       CGVPParam ( Name = TexProjMatrix TranspTexViewProjMatrix = 1)  // Texture matrix for projection
  604.  
  605.       Layer '0'
  606.       (
  607.         TexType = DSDTBump
  608.         TexFilter = TriLinear
  609.         Sequence (Maps = textures/animated/water/caust##00_31_ddt Time = 0.05 Loop)
  610.         TexColorOp = NoSet
  611.       )
  612.       Layer '1'
  613.       (
  614.         Map = $WaterMap
  615.         Projected
  616.         TexColorOp = NoSet
  617.       )
  618.       Layer '2'
  619.       (
  620.         Map = Defaults/fresnel14
  621.         ClampTexCoords
  622.         TexColorOp = NoSet
  623.       )
  624.       Layer '3'
  625.       (
  626.         //Sequence(Maps = textures/animated/water/caust## Time = 0.05 Loop)
  627.         Map = water_lm
  628.         TexColorOp = NoSet
  629.         
  630.         Blend    'SRC_ALPHA ONE_MINUS_SRC_ALPHA'
  631.       )
  632.     )
  633.   )
  634.  
  635.   HW 'Seq'
  636.   (
  637.     Conditions
  638.     {
  639.       Vars
  640.       {
  641.         r_WaterRefractions = 0
  642.         r_WaterReflections = 1
  643.       }
  644.     }
  645.   
  646.     Array (Verts 3 FLOAT Vertex)
  647.     Array (Color 4 BYTE Color)
  648.     //Array (Texture0 2 Float Texture0)
  649.  
  650.     ShadeLayer
  651.     (
  652.       CGPShader   = CGRCWater
  653.       CGPSParam ( Name = Matrix User 'BumpAmountX' Comp = 0 Comp = 0 User 'BumpAmountY' )
  654.       CGPSParam ( Name = WaterColor Comp = 1 Comp = 1 Comp = 1 Comp = 1)  // Water color
  655.       CGPSParam ( Name = ReflectAmount User 'ReflectAmount' User 'ReflectAmount' User 'ReflectAmount' User 'Opacity')  // Water color
  656.       CGPSParam ( Name = ReflectAddAmount User 'ReflectAddAmount' User 'ReflectAddAmount' User 'ReflectAddAmount' Comp = 1)  // Water color
  657.  
  658.       CGVProgram = CGVProgWater
  659.       CGVPParam ( Name = CameraPos Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2' Comp = 0.15)
  660.       CGVPParam ( Name = TexShiftRipple Comp 'time 0.06' Comp 'time 0.12')  // xy = ripple uv ADDer
  661.       CGVPParam ( Name = TexGenRipple0 Comp = 0.125 Comp = 0 Comp = 0 Comp = 0)  // Ripple texgen
  662.       CGVPParam ( Name = TexGenRipple1 Comp = 0 Comp = 0.125 Comp = 0 Comp = 0)  // Ripple texgen
  663.       CGVPParam ( Name = TexDetailScale Comp = 0.08 Comp = 0.08 )  // xy = detail uv Scale
  664.       CGVPParam ( Name = TexProjMatrix TranspTexViewProjMatrix = 1)  // Texture matrix for projection
  665.  
  666.       Layer '0'  
  667.       (
  668.         TexType = DSDTBump 
  669.         TexFilter = TriLinear 
  670.         Sequence (Maps = textures/animated/water/caust##00_31_ddt Time = 0.05 Loop ) 
  671.         TexColorOp = NoSet
  672.       )
  673.       Layer '1'
  674.       (
  675.         Map = $WaterMap
  676.         Projected
  677.         TexColorOp = NoSet
  678.       )
  679.       Layer '2'
  680.       (
  681.         Map = Defaults/fresnel14
  682.         ClampTexCoords
  683.         TexColorOp = NoSet
  684.       )
  685.       Layer '3'
  686.       (
  687.         Map = water_lm
  688.         TexColorOp = NoSet
  689.         
  690.         Blend    'SRC_ALPHA ONE_MINUS_SRC_ALPHA'
  691.       )
  692.     )
  693.  
  694. /*
  695. #ifdef SUPPORT_PROFILE_PS_2_0
  696.     Light
  697.     (         
  698.       ShadeLayer
  699.       (
  700.         CGVProgram = CGVProgBumpSunGlow_VS20
  701.         CGVPParam ( Name = CameraPos Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2' Comp = 0.15)
  702.         CGVPParam ( Name = TexShiftRipple Comp 'time 0.06' Comp 'time 0.12')  // xy = ripple uv ADDer
  703.         CGVPParam ( Name = LightPos Comp 'SunFlarePos[0]' Comp 'SunFlarePos[1]' Comp 'SunFlarePos[2]' Comp=1)
  704.         CGVPParam ( Name = TexGenRipple0 Comp = 0.125 Comp = 0 Comp = 0 Comp = 0)  // Ripple texgen
  705.         CGVPParam ( Name = TexGenRipple1 Comp = 0 Comp = 0.125 Comp = 0 Comp = 0)  // Ripple texgen
  706.         CGVPParam ( Name = Normal Comp = 0 Comp = 0 Comp = 1)  // Normal
  707.         CGVPParam ( Name = Tangent Comp = 0 Comp = -1 Comp = 0 ) // Tangent
  708.  
  709.         CGPShader = CGRCBumpSunGlow_PS20
  710.         //CGPSParam ( Name = Specular Comp 'SpecLightColor[0]'  Comp 'SpecLightColor[1]' Comp 'SpecLightColor[2]' Comp = 1 )
  711.         CGPSParam ( Name = Specular Comp = 0.6  Comp = 0.6 Comp = 0.4 Comp = 30 )
  712.         CGPSParam ( Name = BumpAmount User 'BumpAmountX' User 'BumpAmountY' Comp=1)
  713.  
  714.         Layer '0'
  715.         (
  716.           TexType = Bumpmap
  717.           //Map = test8
  718.           //BumpHighRes
  719.           BumpAmount = 0.1
  720.           //TexLodBias = 1
  721.           Sequence (Maps = textures/animated/water/caust##00_31_ddn Time = 0.05 Loop)
  722.           TexColorOp = NoSet
  723.           Blend 'ONE ONE'
  724.         )
  725.       )
  726.     )
  727. #endif
  728. */
  729.  
  730.  
  731. //#ifdef OTHER
  732.     Light
  733.     (         
  734.       ShadeLayer
  735.       (
  736.         CGVProgram = CGVProgBumpSunGlow
  737.         CGVPParam ( Name = CameraPos Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2' Comp = 0.15)
  738.         CGVPParam ( Name = TexShiftRipple Comp 'time 0.06' Comp 'time 0.12')  // xy = ripple uv ADDer
  739.         CGVPParam ( Name = LightPos Comp 'SunFlarePos[0]' Comp 'SunFlarePos[1]' Comp 'SunFlarePos[2]' Comp=1)
  740.         CGVPParam ( Name = TexGenRipple0 Comp = 0.125 Comp = 0 Comp = 0 Comp = 0)  // Ripple texgen
  741.         CGVPParam ( Name = TexGenRipple1 Comp = 0 Comp = 0.125 Comp = 0 Comp = 0)  // Ripple texgen
  742.         CGVPParam ( Name = Normal Comp = 0 Comp = 0 Comp = 1)  // Normal
  743.         CGVPParam ( Name = Tangent Comp = 0 Comp = -1 Comp = 0 ) // Tangent
  744.  
  745.         CGPShader = CGRCBumpSunGlow
  746.         //CGPSParam ( Name = Specular Comp 'SpecLightColor[0]'  Comp 'SpecLightColor[1]' Comp 'SpecLightColor[2]' Comp = 1 )
  747.         CGPSParam ( Name = Specular Comp = 0.8  Comp = 0.8 Comp = 0.3 Comp = 1 )
  748.  
  749.         Layer '0'
  750.         (
  751.           TexType = Bumpmap
  752.           //Map = test8
  753.           BumpHighRes
  754.           BumpAmount = 0.8
  755.           TexLodBias = 0.5
  756.           Sequence (Maps = textures/animated/water/caust##00_31 Time = 0.05 Loop)
  757.           TexColorOp = NoSet
  758.         )
  759.  
  760.         Layer '1'
  761.         (
  762.           Map = $None
  763.           TexColorOp = NoSet
  764.         )
  765.  
  766.         Layer '2'
  767.         (
  768.           Blend 'ONE ONE'        
  769.           Map = $Phong_35
  770.           TexLodBias = 1
  771.           TexColorOp = NoSet
  772.         )
  773.       )
  774.     )
  775. //#endif
  776.   )
  777.   
  778.   // include shader low spec water shader
  779.   LOWSPEC_WATER_SHADER
  780. )
  781.  
  782. Shader 'TerrainWater_PS20'
  783. (
  784.   Public
  785.   (
  786.     float 'BumpAmountX' (0.01)
  787.     float 'BumpAmountY' (0.01)
  788.     float 'RefrBumpAmountX' (0.012)
  789.     float 'RefrBumpAmountY' (0.010)
  790.     float 'WaveAmplitude' (0.0)
  791.     float 'ReflectAmount' (1.0)
  792.     float 'Opacity' (1)   
  793.     float 'WaveSpeedX' (0.05)
  794.     float 'WaveSpeedY' (0.1)
  795.     float 'NoiseSpeed' (0.1)
  796.     float 'FadeBias' (0.25)
  797.     float 'FadeExp' (4.0)
  798.     float 'WaveScaleX' (0.1)
  799.     float 'WaveScaleY' (0.15)
  800.     float 'WaveScaleZ' (0.1)
  801.     
  802.     // water refraction shared parameters    
  803.     WATER_REFRACTION_PARAMS
  804.   )
  805.   
  806.   Params
  807.   (
  808.     Sort = Water
  809.     Cull = TwoSided
  810.     ClipPlane = Back    
  811.   )
  812.   
  813.   RenderParams
  814.   {
  815.     DrawFarSprites
  816.     DrawStaticObjects
  817.     DrawParticles
  818.     DrawEntities
  819.     DrawIndoors
  820.     //UpdateFactor = 0.001
  821.     FullDetailTerrain
  822.     DrawTerrain
  823.   }
  824.  
  825.   HW
  826.   (
  827.     Conditions
  828.     {
  829.       Vars
  830.       {
  831.         r_PolygonMode = 2
  832.       }
  833.     }
  834.     
  835.     Array (Verts 3 FLOAT Vertex)
  836.     Array (Color 4 BYTE Color)
  837.  
  838.     ShadeLayer
  839.     (
  840.       Layer '1'
  841.       (
  842.         Map                  = Textures/liquids/W01blue03
  843.         //Procedure            = HeavyRain01
  844.         TexGen               'HW_ObjectLinear'
  845.         {
  846.           Mask = 3
  847.           PlaneS (Comp = 0.125 Comp = 0 Comp = 0 Comp 'CameraPos pos 0 / 8')
  848.           PlaneT (Comp = 0 Comp = 0.125 Comp = 0 Comp 'CameraPos pos 1 / 8')
  849.         }
  850.         Blend                'SRC_ALPHA ONE_MINUS_SRC_ALPHA'
  851.         //RgbGen               'Fixed' (0.6 0.6 0.6 0.6)
  852.         TexColorOp = Modulate
  853.         DepthWrite = 1
  854.       )
  855.     )
  856.   )
  857.  
  858.   HW 'Seq'
  859.   (
  860.     Conditions
  861.     {
  862.       Vars
  863.       {
  864.         r_WaterRefractions = 1
  865.         r_WaterReflections = 1
  866.       }
  867.     }
  868.   
  869.     Array (Verts 3 FLOAT Vertex)
  870.     Array (Color 4 BYTE Color)
  871.     //Array (Texture0 2 Float Texture0)
  872.  
  873.  
  874.     // water refraction pass (cheap)
  875.     WATER_REFRACTION
  876.  
  877.     ShadeLayer
  878.     (
  879.       CGPShader   = CGRCWater
  880.       CGPSParam ( Name = Matrix User 'BumpAmountX' Comp = 0 Comp = 0 User 'BumpAmountY' )
  881.       CGPSParam ( Name = WaterColor Comp = 1 Comp = 1 Comp = 1 Comp = 1)  // Water color
  882.       CGPSParam ( Name = ReflectAmount User 'ReflectAmount' User 'ReflectAmount' User 'ReflectAmount' User 'Opacity')  // Water color
  883.       CGPSParam ( Name = ReflectAddAmount User 'ReflectAddAmount' User 'ReflectAddAmount' User 'ReflectAddAmount' Comp = 1)  // Water color
  884.  
  885.       CGVProgram = CGVProgWater
  886.       CGVPParam ( Name = CameraPos Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2' Comp = 0.15)
  887.       CGVPParam ( Name = TexShiftRipple Comp 'time 0.06' Comp 'time 0.12')  // xy = ripple uv ADDer
  888.       CGVPParam ( Name = TexGenRipple0 Comp = 0.125 Comp = 0 Comp = 0 Comp = 0)  // Ripple texgen
  889.       CGVPParam ( Name = TexGenRipple1 Comp = 0 Comp = 0.125 Comp = 0 Comp = 0)  // Ripple texgen
  890.       CGVPParam ( Name = TexDetailScale Comp = 0.08 Comp = 0.08 )  // xy = detail uv Scale
  891.       CGVPParam ( Name = TexProjMatrix TranspTexViewProjMatrix = 1)  // Texture matrix for projection
  892.  
  893.       Layer '0'
  894.       (
  895.         TexType = DSDTBump
  896.         TexFilter = TriLinear
  897.         Sequence (Maps = textures/animated/water/caust##00_31_ddt Time = 0.05 Loop)
  898.         TexColorOp = NoSet
  899.       )
  900.       Layer '1'
  901.       (
  902.         Map = $WaterMap
  903.         Projected
  904.         TexColorOp = NoSet
  905.       )
  906.       Layer '2'
  907.       (
  908.         Map = Defaults/fresnel14
  909.         ClampTexCoords
  910.         TexColorOp = NoSet
  911.       )
  912.       Layer '3'
  913.       (
  914.         //Sequence(Maps = textures/animated/water/caust## Time = 0.05 Loop)
  915.         Map = water_lm
  916.         TexColorOp = NoSet
  917.         
  918.         Blend    'SRC_ALPHA ONE_MINUS_SRC_ALPHA'
  919.       )
  920.     )
  921.   )
  922.  
  923.   HW 'Seq'
  924.   (
  925.     Conditions
  926.     {
  927.       Vars
  928.       {
  929.         r_WaterRefractions = 0
  930.         r_WaterReflections = 1
  931.       }
  932.     }
  933.   
  934.     Array (Verts 3 FLOAT Vertex)
  935.     Array (Color 4 BYTE Color)
  936.  
  937.     ShadeLayer
  938.     (
  939.       CGPShader = CGRCWater_PS20
  940.       CGPSParam (Name = FadeParams User 'FadeBias' User 'FadeExp')
  941.       CGPSParam (Name = TimeParams User 'WaveSpeedX' User 'WaveSpeedY' User 'NoiseSpeed' Comp 'Time 1')
  942.       CGPSParam (Name = BumpScale User 'BumpAmountX' User 'BumpAmountY' )
  943.       CGPSParam (Name = ReflectAmount User 'ReflectAmount' User 'ReflectAmount' User 'ReflectAmount' User 'Opacity')  // Water color
  944.       
  945.       CGVProgram = CGVProgWater_VS20
  946.       CGVPParam (Name = Scale User 'WaveScaleX' User 'WaveScaleY' User 'WaveScaleZ')
  947.       CGVPParam (Name = Normal Comp = 0 Comp = 0 Comp = 1)
  948.       CGVPParam (Name = CameraPos Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2' Comp = 0.15)
  949.       CGVPParam (Name = TexShiftRipple Comp 'time 0.06' Comp 'time 0.12')  // xy = ripple uv ADDer
  950.       CGVPParam (Name = TexGenRipple0 Comp = 0.125 Comp = 0 Comp = 0 Comp = 0)  // Ripple texgen
  951.       CGVPParam (Name = TexGenRipple1 Comp = 0 Comp = 0.125 Comp = 0 Comp = 0)  // Ripple texgen
  952.       CGVPParam (Name = TexDetailScale Comp = 0.08 Comp = 0.08 )  // xy = detail uv Scale
  953.       CGVPParam (Name = TexProjMatrix TranspTexViewProjMatrix = 1)  // Texture matrix for projection
  954.  
  955.       Layer '0' 
  956.       ( 
  957.         Map = $NoiseVolume
  958.         TexType = Volume
  959.         //TexFilter = TriLinear
  960.         TexColorOp = NoSet
  961.       ) 
  962.       Layer '1'
  963.       (
  964.         Map = $WaterMap
  965.         //Projected
  966.         TexColorOp = NoSet
  967.       )
  968.       Layer '2'
  969.       (
  970.         Map = water_lm
  971.         TexColorOp = NoSet
  972.         
  973.         Blend    'SRC_ALPHA ONE_MINUS_SRC_ALPHA'
  974.       )
  975.     )
  976.  
  977.     Light
  978.     (         
  979.       ShadeLayer
  980.       (
  981.         CGVProgram = CGVProgBumpSunGlow_VS20
  982.         CGVPParam ( Name = CameraPos Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2' Comp = 0.15)
  983.         CGVPParam ( Name = TexShiftRipple Comp 'time 0.06' Comp 'time 0.12')  // xy = ripple uv ADDer
  984.         CGVPParam ( Name = LightPos Comp 'SunFlarePos[0]' Comp 'SunFlarePos[1]' Comp 'SunFlarePos[2]' Comp=1)
  985.         CGVPParam ( Name = TexGenRipple0 Comp = 0.125 Comp = 0 Comp = 0 Comp = 0)  // Ripple texgen
  986.         CGVPParam ( Name = TexGenRipple1 Comp = 0 Comp = 0.125 Comp = 0 Comp = 0)  // Ripple texgen
  987.         CGVPParam ( Name = Normal Comp = 0 Comp = 0 Comp = 1)  // Normal
  988.         CGVPParam ( Name = Tangent Comp = 0 Comp = -1 Comp = 0 ) // Tangent
  989.  
  990.         CGPShader = CGRCBumpSunGlow_PS20
  991.         //CGPSParam ( Name = Specular Comp 'SpecLightColor[0]'  Comp 'SpecLightColor[1]' Comp 'SpecLightColor[2]' Comp = 1 )
  992.         CGPSParam ( Name = Specular Comp = 0.6  Comp = 0.6 Comp = 0.4 Comp = 30 )
  993.         CGPSParam ( Name = BumpAmount User 'BumpAmountX' User 'BumpAmountY' Comp=1)
  994.  
  995.         Layer '0'
  996.         (
  997.           TexType = Bumpmap
  998.           BumpAmount = 0.1
  999.           Sequence (Maps = textures/animated/water/caust##00_31_ddn Time = 0.05 Loop)
  1000.           TexColorOp = NoSet
  1001.           Blend 'ONE ONE'
  1002.         )
  1003.       )
  1004.     )
  1005.   )
  1006.   
  1007.   // include shader low spec water shader
  1008.   LOWSPEC_WATER_SHADER
  1009. )
  1010.  
  1011. Shader 'TerrainWater_TempleRiver'
  1012. (
  1013.   Public
  1014.   (
  1015.     float 'BumpAmountX' (0.07)
  1016.     float 'BumpAmountY' (0.42)
  1017.     float 'RefrBumpAmountX' (0.012)
  1018.     float 'RefrBumpAmountY' (0.010)
  1019.     float 'WaveAmplitude' (0.1)
  1020.     float 'ReflectAmount' (0.9)
  1021.     float 'ReflectAddAmount' (0.2)
  1022.     float 'Opacity' (1)    
  1023.   )
  1024.   Params
  1025.   (
  1026.     Sort = Water
  1027.     Cull = TwoSided
  1028.     //ClipPlane = Back
  1029.   )
  1030.   RenderParams
  1031.   {
  1032.     DrawFarSprites
  1033.     DrawStaticObjects
  1034.     DrawParticles
  1035.     DrawEntities
  1036.     //DrawIndoors
  1037.     UpdateFactor = 0.001
  1038.     FullDetailTerrain
  1039.     DrawTerrain
  1040.   }
  1041.  
  1042.   HW
  1043.   (
  1044.     Conditions
  1045.     {
  1046.       Vars
  1047.       {
  1048.         r_PolygonMode = 2
  1049.       }
  1050.     }
  1051.     
  1052.     Array (Verts 3 FLOAT Vertex)
  1053.     Array (Color 4 BYTE Color)
  1054.  
  1055.     ShadeLayer
  1056.     (
  1057.       Layer '1'
  1058.       (
  1059.         Map                  = Textures/liquids/W01blue03
  1060.         //Procedure            = HeavyRain01
  1061.         TexGen               'HW_ObjectLinear'
  1062.         {
  1063.           Mask = 3
  1064.           PlaneS (Comp = 0.125 Comp = 0 Comp = 0 Comp 'CameraPos pos 0 / 8')
  1065.           PlaneT (Comp = 0 Comp = 0.125 Comp = 0 Comp 'CameraPos pos 1 / 8')
  1066.         }
  1067.         Blend                'SRC_ALPHA ONE_MINUS_SRC_ALPHA'
  1068.         //RgbGen               'Fixed' (0.6 0.6 0.6 0.6)
  1069.         TexColorOp = Modulate
  1070.         DepthWrite = 1
  1071.       )
  1072.     )
  1073.   )
  1074.  
  1075.   HW 'Seq'
  1076.   (
  1077.     Conditions
  1078.     {
  1079.       Vars
  1080.       {
  1081.         r_WaterRefractions = 1
  1082.         r_WaterReflections = 1
  1083.       }
  1084.     }
  1085.   
  1086.     Array (Verts 3 FLOAT Vertex)
  1087.     Array (Color 4 BYTE Color)
  1088.     //Array (Texture0 2 Float Texture0)
  1089.  
  1090.     ShadeLayer
  1091.     (
  1092.       CGPShader   = CGRCWater_Refr
  1093.       CGPSParam ( Name = Matrix User 'RefrBumpAmountX' Comp = 0 Comp = 0 User 'RefrBumpAmountY' )
  1094.       CGPSParam ( Name = WaterColor Comp = 1 Comp = 1 Comp = 1 Comp = 1)  // Water color
  1095.  
  1096.       CGVProgram = CGVProgWater_Refr
  1097.       CGVPParam ( Name = CameraPos Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2' Comp = 0.15)
  1098.       CGVPParam ( Name = TexShiftRipple Comp 'time 0.06' Comp 'time 0.12' Comp = 0.5)  // xy = ripple uv ADDer
  1099.       CGVPParam ( Name = TexGenRipple0 Comp = 0.125 Comp = 0 Comp = 0 Comp = 0)  // Ripple texgen
  1100.       CGVPParam ( Name = TexGenRipple1 Comp = 0 Comp = 0.125 Comp = 0 Comp = 0)  // Ripple texgen
  1101.       CGVPParam ( Name = TexProjMatrix TranspTexViewProjMatrix = 1)  // Texture matrix for projection
  1102.  
  1103.       Layer '0'
  1104.       (
  1105.         TexType = DSDTBump
  1106.         TexFilter = TriLinear
  1107.         Sequence (Maps = textures/animated/water/caust##00_31_ddt Time = 0.05 Loop)
  1108.         TexColorOp = NoSet
  1109.       )
  1110.  
  1111.       Layer '1'
  1112.       (
  1113.         Map = $EnvironmentTexture
  1114.         Projected
  1115.           
  1116.         //Texgen = Projection
  1117.         TexColorOp = NoSet
  1118.       )
  1119.     )
  1120.  
  1121.     ShadeLayer
  1122.     (
  1123.       CGPShader   = CGRCWater
  1124.       CGPSParam ( Name = Matrix User 'BumpAmountX' Comp = 0 Comp = 0 User 'BumpAmountY' )
  1125.       CGPSParam ( Name = WaterColor Comp = 1 Comp = 1 Comp = 1 Comp = 1)  // Water color
  1126.       CGPSParam ( Name = ReflectAmount User 'ReflectAmount' User 'ReflectAmount' User 'ReflectAmount' User 'Opacity')  // Water color
  1127.       CGPSParam ( Name = ReflectAddAmount User 'ReflectAddAmount' User 'ReflectAddAmount' User 'ReflectAddAmount' Comp = 1)  // Water color
  1128.  
  1129.       CGVProgram = CGVProgWater
  1130.       CGVPParam ( Name = CameraPos Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2' Comp = 0.15)
  1131.       CGVPParam ( Name = TexShiftRipple Comp 'time 0.06' Comp 'time 0.12')  // xy = ripple uv ADDer
  1132.       CGVPParam ( Name = TexGenRipple0 Comp = 0.125 Comp = 0 Comp = 0 Comp = 0)  // Ripple texgen
  1133.       CGVPParam ( Name = TexGenRipple1 Comp = 0 Comp = 0.125 Comp = 0 Comp = 0)  // Ripple texgen
  1134.       CGVPParam ( Name = TexDetailScale Comp = 0.08 Comp = 0.08 )  // xy = detail uv Scale
  1135.       CGVPParam ( Name = TexProjMatrix TranspTexViewProjMatrix = 1)  // Texture matrix for projection
  1136.  
  1137.       Layer '0'
  1138.       (
  1139.         TexType = DSDTBump
  1140.         TexFilter = TriLinear
  1141.         Sequence (Maps = textures/animated/water/caust##00_31_ddt Time = 0.05 Loop)
  1142.         TexColorOp = NoSet
  1143.       )
  1144.       Layer '1'
  1145.       (
  1146.         Map = $WaterMap
  1147.         Projected
  1148.         TexColorOp = NoSet
  1149.       )
  1150.       Layer '2'
  1151.       (
  1152.         Map = Defaults/fresnel14
  1153.         ClampTexCoords
  1154.         TexColorOp = NoSet
  1155.       )
  1156.       Layer '3'
  1157.       (
  1158.         //Sequence(Maps = textures/animated/water/caust## Time = 0.05 Loop)
  1159.         Map = water_lm
  1160.         TexColorOp = NoSet
  1161.         
  1162.         //DepthWrite = 1
  1163.         Blend    'SRC_ALPHA ONE_MINUS_SRC_ALPHA'
  1164.       )
  1165.     )
  1166.   )
  1167.  
  1168.   HW 'Seq'
  1169.   (
  1170.     Conditions
  1171.     {
  1172.       Vars
  1173.       {
  1174.         r_WaterRefractions = 0
  1175.         r_WaterReflections = 1
  1176.       }
  1177.     }
  1178.   
  1179.     Array (Verts 3 FLOAT Vertex)
  1180.     Array (Color 4 BYTE Color)
  1181.     //Array (Texture0 2 Float Texture0)
  1182.  
  1183.     ShadeLayer
  1184.     (
  1185.       CGPShader   = CGRCWater
  1186.       CGPSParam ( Name = Matrix User 'BumpAmountX' Comp = 0 Comp = 0 User 'BumpAmountY' )
  1187.       CGPSParam ( Name = WaterColor Comp = 1 Comp = 1 Comp = 1 Comp = 1)  // Water color
  1188.       CGPSParam ( Name = ReflectAmount User 'ReflectAmount' User 'ReflectAmount' User 'ReflectAmount' User 'Opacity')  // Water color
  1189.       CGPSParam ( Name = ReflectAddAmount User 'ReflectAddAmount' User 'ReflectAddAmount' User 'ReflectAddAmount' Comp = 1)  // Water color
  1190.  
  1191.       CGVProgram = CGVProgWater
  1192.       CGVPParam ( Name = CameraPos Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2' Comp = 0.15)
  1193.       CGVPParam ( Name = TexShiftRipple Comp 'time 0.06' Comp 'time 0.12')  // xy = ripple uv ADDer
  1194.       CGVPParam ( Name = TexGenRipple0 Comp = 0.125 Comp = 0 Comp = 0 Comp = 0)  // Ripple texgen
  1195.       CGVPParam ( Name = TexGenRipple1 Comp = 0 Comp = 0.125 Comp = 0 Comp = 0)  // Ripple texgen
  1196.       CGVPParam ( Name = TexDetailScale Comp = 0.08 Comp = 0.08 )  // xy = detail uv Scale
  1197.       CGVPParam ( Name = TexProjMatrix TranspTexViewProjMatrix = 1)  // Texture matrix for projection
  1198.  
  1199.       Layer '0'  
  1200.       (
  1201.         TexType = DSDTBump 
  1202.         TexFilter = TriLinear 
  1203.         Sequence (Maps = textures/animated/water/caust##00_31_ddt Time = 0.05 Loop ) 
  1204.         TexColorOp = NoSet
  1205.       )
  1206.       Layer '1'
  1207.       (
  1208.         Map = $WaterMap
  1209.         Projected
  1210.         TexColorOp = NoSet
  1211.       )
  1212.       Layer '2'
  1213.       (
  1214.         Map = Defaults/fresnel14
  1215.         ClampTexCoords
  1216.         TexColorOp = NoSet
  1217.       )
  1218.       Layer '3'
  1219.       (
  1220.         Map = water_lm //water_lm
  1221.         TexColorOp = NoSet
  1222.         
  1223.         //DepthWrite = 1
  1224.         Blend    'SRC_ALPHA ONE_MINUS_SRC_ALPHA'
  1225.       )
  1226.     )
  1227.   )
  1228.  
  1229.   // low/med spec shader
  1230.   LOWSPEC_WATER_SHADER  
  1231. )
  1232.  
  1233. Shader 'TerrainWater_FP'
  1234. (
  1235.   Public
  1236.   (
  1237.   )
  1238.   Params
  1239.   (
  1240.     Sort = Water
  1241.     Cull = TwoSided
  1242.   )
  1243.  
  1244.   HW 'Seq'
  1245.   (
  1246.     Array (Verts 3 FLOAT Vertex)
  1247.     Array (Color 4 BYTE Color)
  1248.  
  1249.     ShadeLayer
  1250.     (
  1251.       Layer '0'
  1252.       (
  1253.         Sequence
  1254.         (
  1255.           Maps = textures/animated/water/caust_xb_##00_00
  1256.           Time = 0.5 
  1257.           Loop
  1258.         ) 
  1259.           
  1260.         TexGen               'HW_ObjectLinear'
  1261.         {
  1262.           Mask = 3
  1263.           PlaneS (Comp = 0.125 Comp = 0 Comp = 0 Comp 'time 0.1')
  1264.           PlaneT (Comp = 0 Comp = 0.125 Comp = 0 Comp = 0)
  1265.         }       
  1266.         TexColorOp = modulate
  1267.         TexAlphaOp = add
  1268.         TexColorArg0 = Diffuse
  1269.         TexColorArg1 = Texture
  1270.         TexAlphaArg0 = Diffuse
  1271.         TexAlphaArg1 = Constant
  1272.       )
  1273.     
  1274.       Layer '1'  
  1275.       (
  1276.         Sequence
  1277.         (
  1278.           Maps = textures/animated/water/caust_xb_##00_00
  1279.           Time = 0.5 
  1280.           Loop
  1281.         ) 
  1282.  
  1283.         TexGen               'HW_ObjectLinear'
  1284.         {
  1285.           Mask = 3
  1286.           PlaneS (Comp = 0.060 Comp = 0 Comp = 0 Comp 'time -0.1')
  1287.           PlaneT (Comp = 0 Comp = 0.060 Comp = 0 Comp = 0)
  1288.         }       
  1289.         TexColorOp = Modulate
  1290.         RgbGen 'Fixed' (1 1 1 0.2)
  1291.  
  1292.         Blend 'SRC_ALPHA ONE_MINUS_SRC_ALPHA'
  1293.         DepthWrite = 0
  1294.       )
  1295.     )
  1296.   )
  1297. )
  1298.  
  1299. Shader 'TerrainWaterNoRefl'
  1300. (
  1301.   Public
  1302.   (
  1303.   )
  1304.   Params
  1305.   (
  1306.     Sort = Water
  1307.     Cull = TwoSided
  1308.     ClipPlane = Back
  1309.   )
  1310.  
  1311.   HW 'Seq'
  1312.   (
  1313.     Array (Verts 3 FLOAT Vertex)
  1314.     Array (Color 4 BYTE Color)
  1315.  
  1316.     ShadeLayer
  1317.     (
  1318.       Layer '0'
  1319.       (
  1320.         Map = water_simple
  1321.           
  1322.         TexGen               'HW_ObjectLinear'
  1323.         {
  1324.           Mask = 3
  1325.           PlaneS (Comp = 0.125 Comp = 0 Comp = 0 Comp 'time 0.1')
  1326.           PlaneT (Comp = 0 Comp = 0.125 Comp = 0 Comp = 0)
  1327.         }       
  1328.         TexColorOp = Modulate
  1329.       )
  1330.     
  1331.       Layer '1'  
  1332.       (
  1333.         Sequence
  1334.         (
  1335.           Maps = textures/animated/water/caust##00_31
  1336.           Time = 0.05 
  1337.           Loop
  1338.         ) 
  1339.  
  1340.         TexGen               'HW_ObjectLinear'
  1341.         {
  1342.           Mask = 3
  1343.           PlaneS (Comp = 0.062 Comp = 0 Comp = 0 Comp 'time -0.1')
  1344.           PlaneT (Comp = 0 Comp = 0.062 Comp = 0 Comp = 0)
  1345.         }       
  1346.         TexColorOp = Modulate
  1347.  
  1348.         Blend 'SRC_ALPHA ONE_MINUS_SRC_ALPHA'
  1349.         DepthWrite = 0
  1350.       )
  1351.     )
  1352.   )
  1353. )
  1354.  
  1355. Shader 'TerrainRiver'
  1356. (
  1357.   Public
  1358.   (
  1359.     float 'BumpAmountX' (0.15)
  1360.     float 'BumpAmountY' (0.2)
  1361.     float 'WaveAmplitude' (0.1)    
  1362.   )
  1363.   
  1364.   Params
  1365.   (
  1366.     Sort = Water
  1367.     //Cull = TwoSided
  1368.     ClipPlane = Front    
  1369.   )
  1370.   
  1371.   RenderParams
  1372.   {
  1373.     DrawFarSprites
  1374.     DrawStaticObjects
  1375.     DrawParticles
  1376.     DrawEntities
  1377.     DrawIndoors
  1378.     DrawDetailTextures
  1379.     UpdateFactor = 0.001
  1380.   }
  1381.   HW 'Seq'
  1382.   (
  1383.     Conditions
  1384.     {
  1385.       Vars
  1386.       {        
  1387.         r_WaterReflections = 1
  1388.       }
  1389.     }
  1390.     
  1391.     Array (Verts 3 FLOAT Vertex)
  1392.     Array (Texture0 2 Float Texture0)
  1393.     Array (Color 4 BYTE Color)
  1394.  
  1395.     ShadeLayer
  1396.     (
  1397.       CGPShader   = CGRCWater_Lake
  1398.       CGPSParam ( Name = Matrix User 'BumpAmountX' Comp = 0 Comp = 0 User 'BumpAmountY' )
  1399.       CGPSParam ( Name = WaterColor Comp = 1 Comp = 1 Comp = 1 Comp = 1)  // Water color
  1400.       CGPSParam ( Name = ReflectAmount User 'ReflectAmount' User 'ReflectAmount' User 'ReflectAmount' User 'Opacity')  // Water color
  1401.       CGPSParam ( Name = ReflectAddAmount User 'ReflectAddAmount' User 'ReflectAddAmount' User 'ReflectAddAmount' Comp = 1)  // Water color
  1402.  
  1403.       CGVProgram = CGVProgWater_Lake
  1404.       CGVPParam ( Name = CameraPos Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2' Comp = 0.15)
  1405.       CGVPParam ( Name = TexShiftRipple Comp 'time 0.06' Comp 'time 0.12')  // xy = ripple uv ADDer
  1406.       CGVPParam ( Name = TexProjMatrix TranspTexViewProjMatrix = 1)  // Texture matrix for projection
  1407.  
  1408.       Layer '0'
  1409.       (
  1410.         TexType = DSDTBump
  1411.         Sequence(Maps = textures/animated/water/caust##00_31_ddt Time = 0.05 Loop)
  1412.         TexColorOp = NoSet
  1413.       )
  1414.       Layer '1'
  1415.       (
  1416.         Map = $EnvironmentTexture
  1417.         TexColorOp = NoSet
  1418.       )
  1419.       Layer '2'
  1420.       (
  1421.         Map = Defaults/fresnel14
  1422.         ClampTexCoords
  1423.         TexColorOp = NoSet
  1424.       )
  1425.       Layer '3'
  1426.       (
  1427.         Map = water_lm
  1428.         TexColorOp = NoSet
  1429.         
  1430.         //DepthWrite = 1
  1431.         Blend    'SRC_ALPHA ONE_MINUS_SRC_ALPHA'
  1432.       )
  1433.     )
  1434.   )
  1435.   
  1436.   // include shader low spec water shader
  1437.   LOWSPEC_WATER_SHADER
  1438. )
  1439.  
  1440. Shader 'TemplMirror'
  1441. (
  1442.   Params
  1443.   (
  1444.     Sort = Opaque
  1445.     //Cull = TwoSided
  1446.     ClipPlane = Front
  1447.   )
  1448.   RenderParams
  1449.   {
  1450.     DrawFarSprites
  1451.     DrawStaticObjects
  1452.     DrawParticles
  1453.     DrawEntities
  1454.     DrawIndoors
  1455.     DrawDetailTextures
  1456.     UpdateFactor = 0.001
  1457.   }
  1458.   
  1459.   HW 'Seq'
  1460.   (
  1461.     Array (Verts 3 FLOAT Vertex)
  1462.     Array (Texture0 2 Float Texture0)
  1463.     Array (Color 4 BYTE Color)
  1464.  
  1465.     ShadeLayer
  1466.     (
  1467.       CGPShader = CGRCMirror
  1468.       CGPSParam ( Name = Color Comp = 1 Comp = 1 Comp = 1 Comp = 0.85)  // Water color
  1469.  
  1470.       CGVProgram = CGVProgMirror
  1471.       CGVPParam ( Name = TexMatrix TranspTexViewProjMatrix = 0)  // Texture matrix for projection
  1472.  
  1473.       Layer '0'
  1474.       (
  1475.         Map = $EnvironmentTexture
  1476.         TexColorOp = NoSet
  1477.       )
  1478.     )
  1479.   )
  1480. )
  1481.  
  1482. Shader 'TerrainLake'
  1483. (
  1484.   Public
  1485.   (
  1486.     float 'BumpAmountX' (0.04)
  1487.     float 'BumpAmountY' (0.06)
  1488.     float 'WaveAmplitude' (0.1)
  1489.     float 'Opacity' (0.9)
  1490.     float 'ReflectAmount' (1)
  1491.   )
  1492.   
  1493.   Params
  1494.   (
  1495.     Sort = Water
  1496.     //Cull = TwoSided
  1497.     ClipPlane = Front
  1498.   )
  1499.   RenderParams
  1500.   {
  1501.     DrawFarSprites
  1502.     DrawStaticObjects
  1503.     DrawParticles
  1504.     DrawEntities
  1505.     DrawIndoors
  1506.     DrawWater
  1507.     DrawDetailTextures
  1508.     DrawDetailObjects
  1509.     FullDetailTerrain
  1510.     DrawTerrain
  1511.     UpdateFactor = 0.001
  1512.   }
  1513.   HW 'Seq'
  1514.   (
  1515.     Conditions
  1516.     {
  1517.       Vars
  1518.       {        
  1519.         r_WaterReflections = 1
  1520.       }
  1521.     }
  1522.       
  1523.     Array (Verts 3 FLOAT Vertex)
  1524.     Array (Texture0 2 FLOAT Texture0)
  1525.     Array (Color 4 BYTE Color)
  1526.  
  1527.     ShadeLayer
  1528.     (
  1529.       CGPShader   = CGRCWater_Lake
  1530.       CGPSParam ( Name = Matrix User 'BumpAmountX' Comp = 0 Comp = 0 User 'BumpAmountY' )
  1531.       CGPSParam ( Name = WaterColor Comp = 1 Comp = 1 Comp = 1 Comp = 1)  // Water color
  1532.       CGPSParam ( Name = ReflectAmount User 'ReflectAmount' User 'ReflectAmount' User 'ReflectAmount' User 'Opacity')  // Water color
  1533.       CGPSParam ( Name = ReflectAddAmount User 'ReflectAddAmount' User 'ReflectAddAmount' User 'ReflectAddAmount' Comp = 1)  // Water color
  1534.  
  1535.       CGVProgram = CGVProgWater_Lake
  1536.       CGVPParam ( Name = CameraPos Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2' Comp = 0)
  1537.       CGVPParam ( Name = TexShiftRipple Comp 'time 0.06' Comp 'time 0.12')  // xy = ripple uv ADDer
  1538.       CGVPParam ( Name = TexProjMatrix TranspTexViewProjMatrix = 1)  // Texture matrix for projection
  1539.  
  1540.       Layer '0'
  1541.       (
  1542.         TexType = DSDTBump
  1543.         TexFilter = TriLinear
  1544.         Sequence (Maps = textures/animated/water/caust##00_31_ddt Time = 0.05 Loop)
  1545.         TexColorOp = NoSet
  1546.       )
  1547.       Layer '1'
  1548.       (
  1549.         Map = $EnvironmentTexture
  1550.         TexColorOp = NoSet
  1551.       )
  1552.       Layer '2'
  1553.       (
  1554.         Map = Defaults/fresnel14
  1555.         ClampTexCoords
  1556.         TexColorOp = NoSet
  1557.       )
  1558.       Layer '3'
  1559.       (
  1560.         Map = water_lm_lake
  1561.         TexColorOp = NoSet
  1562.         
  1563.         //DepthWrite = 1
  1564.         Blend    'SRC_ALPHA ONE_MINUS_SRC_ALPHA'
  1565.       )
  1566.     )
  1567.   )
  1568.   
  1569.   // include shader low spec water shader
  1570.   LOWSPEC_WATER_SHADER
  1571. )
  1572.  
  1573. Shader 'TerrainLake_NoFresnel'
  1574. (
  1575.   Public
  1576.   (
  1577.     float 'BumpAmountX' (0.04)
  1578.     float 'BumpAmountY' (0.06)
  1579.     float 'WaveAmplitude' (0.1)
  1580.     float 'Opacity' (0.9)
  1581.     float 'ReflectAmount' (1)    
  1582.   )
  1583.   
  1584.   Params
  1585.   (
  1586.     Sort = Water
  1587.     //Cull = TwoSided
  1588.     ClipPlane = Front
  1589.   )
  1590.   
  1591.   RenderParams
  1592.   {
  1593.     DrawFarSprites
  1594.     DrawStaticObjects
  1595.     DrawParticles
  1596.     DrawEntities
  1597.     DrawIndoors
  1598.     DrawWater
  1599.     DrawDetailTextures
  1600.     DrawDetailObjects
  1601.     FullDetailTerrain
  1602.     DrawTerrain
  1603.     UpdateFactor = 0.001
  1604.   }
  1605.   
  1606.   HW 'Seq'
  1607.   (
  1608.     Conditions
  1609.     {
  1610.       Vars
  1611.       {        
  1612.         r_WaterReflections = 1
  1613.       }
  1614.     }
  1615.       
  1616.     Array (Verts 3 FLOAT Vertex)
  1617.     Array (Texture0 2 FLOAT Texture0)
  1618.     Array (Color 4 BYTE Color)
  1619.  
  1620.     ShadeLayer
  1621.     (
  1622.       CGPShader   = CGRCWater_Lake
  1623.       CGPSParam ( Name = Matrix User 'BumpAmountX' Comp = 0 Comp = 0 User 'BumpAmountY' )
  1624.       CGPSParam ( Name = WaterColor Comp = 1 Comp = 1 Comp = 1 Comp = 1)  // Water color
  1625.       CGPSParam ( Name = ReflectAmount User 'ReflectAmount' User 'ReflectAmount' User 'ReflectAmount' User 'Opacity')  // Water color
  1626.       CGPSParam ( Name = ReflectAddAmount User 'ReflectAddAmount' User 'ReflectAddAmount' User 'ReflectAddAmount' Comp = 1)  // Water color
  1627.  
  1628.       CGVProgram = CGVProgWater_Lake
  1629.       CGVPParam ( Name = CameraPos Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2' Comp = 0)
  1630.       CGVPParam ( Name = TexShiftRipple Comp 'time 0.06' Comp 'time 0.12')  // xy = ripple uv ADDer
  1631.       CGVPParam ( Name = TexProjMatrix TranspTexViewProjMatrix = 1)  // Texture matrix for projection
  1632.  
  1633.       Layer '0'
  1634.       (
  1635.         TexType = DSDTBump
  1636.         TexFilter = TriLinear
  1637.         Sequence (Maps = textures/animated/water/caust##00_31_ddt Time = 0.05 Loop)
  1638.         TexColorOp = NoSet
  1639.       )
  1640.       Layer '1'
  1641.       (
  1642.         Map = $EnvironmentTexture
  1643.         TexColorOp = NoSet
  1644.       )
  1645.       Layer '2'
  1646.       (
  1647.         Map = white
  1648.         ClampTexCoords
  1649.         TexColorOp = NoSet
  1650.       )
  1651.       Layer '3'
  1652.       (
  1653.         Map = water_lm_lake
  1654.         TexColorOp = NoSet
  1655.         
  1656.         //DepthWrite = 1
  1657.         Blend    'SRC_ALPHA ONE_MINUS_SRC_ALPHA'
  1658.       )
  1659.     )
  1660.   )
  1661.   
  1662.   // include shader low spec water shader
  1663.   LOWSPEC_WATER_SHADER
  1664. )
  1665.  
  1666. Shader 'TerrainLake_Deformed'
  1667. (
  1668.   Public
  1669.   (
  1670.     float 'BumpAmountX' (0.15)
  1671.     float 'BumpAmountY' (0.2)
  1672.     float 'WaveAmplitude' (0.1)
  1673.     float 'Opacity' (0.9)
  1674.     float 'ReflectAmount' (1)    
  1675.   )
  1676.   
  1677.   Params
  1678.   (
  1679.     Sort = Water
  1680.     Cull = TwoSided
  1681.     ClipPlane = Front
  1682.   )
  1683.   
  1684.   RenderParams
  1685.   {
  1686.     DrawFarSprites
  1687.     DrawStaticObjects
  1688.     DrawParticles
  1689.     DrawEntities
  1690.     DrawIndoors
  1691.     DrawWater
  1692.     DrawDetailTextures
  1693.     DrawDetailObjects
  1694.     FullDetailTerrain
  1695.     DrawTerrain
  1696.     UpdateFactor = 0.001
  1697.   }
  1698.   
  1699.   HW 'Seq'
  1700.   (
  1701.     Conditions
  1702.     {
  1703.       Vars
  1704.       {        
  1705.         r_WaterReflections = 1
  1706.       }
  1707.     }
  1708.     
  1709.     Array (Verts 3 FLOAT Vertex)
  1710.     Array (Texture0 2 Float Texture0)
  1711.     Array (Color 4 BYTE Color)
  1712.  
  1713.     ShadeLayer
  1714.     (
  1715.       CGPShader   = CGRCWater_Lake
  1716.       CGPSParam ( Name = Matrix User 'BumpAmountX' Comp = 0 Comp = 0 User 'BumpAmountY' )
  1717.       CGPSParam ( Name = WaterColor Comp = 1 Comp = 1 Comp = 1 Comp = 1)  // Water color
  1718.       CGPSParam ( Name = ReflectAmount User 'ReflectAmount' User 'ReflectAmount' User 'ReflectAmount' User 'Opacity')  // Water color
  1719.       CGPSParam ( Name = ReflectAddAmount User 'ReflectAddAmount' User 'ReflectAddAmount' User 'ReflectAddAmount' Comp = 1)  // Water color
  1720.  
  1721.       CGVProgram = CGVProgWater_Lake
  1722.       CGVPParam ( Name = CameraPos Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2' Comp = 0.15)
  1723.       CGVPParam ( Name = TexShiftRipple Comp 'time 0.06' Comp 'time 0.12')  // xy = ripple uv ADDer
  1724.       CGVPParam ( Name = TexProjMatrix TranspTexViewProjMatrix = 1)  // Texture matrix for projection
  1725.  
  1726.       Layer '0'
  1727.       (
  1728.         TexType = DSDTBump
  1729.         Sequence(Maps = textures/animated/water/caust##00_31_ddt Time = 0.05 Loop)
  1730.         TexColorOp = NoSet
  1731.       )
  1732.       Layer '1'
  1733.       (
  1734.         Map = $EnvironmentTexture
  1735.         TexColorOp = NoSet
  1736.       )
  1737.       Layer '2'
  1738.       (
  1739.         Map = Defaults/fresnel14
  1740.         ClampTexCoords
  1741.         TexColorOp = NoSet
  1742.       )
  1743.       Layer '3'
  1744.       (
  1745.         Map = water_lm
  1746.         TexColorOp = NoSet
  1747.         
  1748.         //DepthWrite = 1
  1749.         Blend    'SRC_ALPHA ONE_MINUS_SRC_ALPHA'
  1750.       )
  1751.     )
  1752.   )
  1753.   
  1754.   // include shader low spec water shader
  1755.   LOWSPEC_WATER_SHADER
  1756. )
  1757.  
  1758. Shader 'TemplLake'
  1759. (
  1760.   Public
  1761.   (
  1762.     float 'BumpAmountX' (0.15)
  1763.     float 'BumpAmountY' (0.2)
  1764.     float 'WaveAmplitude' (0.1)
  1765.     float 'Opacity' (0.9)
  1766.     float 'ReflectAmount' (1)
  1767.   )
  1768.   
  1769.   Params
  1770.   (
  1771.     Sort = Water
  1772.     Cull = TwoSided
  1773.     ClipPlane = Front
  1774.   )
  1775.   
  1776.   RenderParams
  1777.   {
  1778.     DrawFarSprites
  1779.     DrawStaticObjects
  1780.     DrawParticles
  1781.     DrawEntities
  1782.     DrawIndoors
  1783.     DrawWater
  1784.     DrawDetailTextures
  1785.     DrawDetailObjects
  1786.     FullDetailTerrain
  1787.     DrawTerrain
  1788.     UpdateFactor = 0.001
  1789.   }
  1790.   
  1791.   HW 'Seq'
  1792.   (
  1793.     Conditions
  1794.     {
  1795.       Vars
  1796.       {        
  1797.         r_WaterReflections = 1
  1798.       }
  1799.     }
  1800.     
  1801.     Array (Verts 3 FLOAT Vertex)
  1802.     Array (Texture0 2 Float Texture0)
  1803.     Array (Color 4 BYTE Color)
  1804.  
  1805.     ShadeLayer
  1806.     (
  1807.       CGPShader   = CGRCWater_Lake
  1808.       CGPSParam ( Name = Matrix User 'BumpAmountX' Comp = 0 Comp = 0 User 'BumpAmountY' )
  1809.       CGPSParam ( Name = WaterColor Comp = 1 Comp = 1 Comp = 1 Comp = 1)  // Water color
  1810.       CGPSParam ( Name = ReflectAmount User 'ReflectAmount' User 'ReflectAmount' User 'ReflectAmount' User 'Opacity')  // Water color
  1811.       CGPSParam ( Name = ReflectAddAmount User 'ReflectAddAmount' User 'ReflectAddAmount' User 'ReflectAddAmount' Comp = 1)  // Water color
  1812.  
  1813.       CGVProgram = CGVProgWater_LakeNoMove
  1814.       CGVPParam ( Name = CameraPos Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2' Comp = 0.15)
  1815.       CGVPParam ( Name = TexProjMatrix TranspTexViewProjMatrix = 1)  // Texture matrix for projection
  1816.  
  1817.       Layer '0'
  1818.       (
  1819.         TexType = DSDTBump
  1820.         Map = $DSDTBump
  1821.         TexColorOp = NoSet
  1822.       )
  1823.       Layer '1'
  1824.       (
  1825.         Map = $EnvironmentTexture
  1826.         TexColorOp = NoSet
  1827.       )
  1828.       Layer '2'
  1829.       (
  1830.         Map = Defaults/fresnel14
  1831.         ClampTexCoords
  1832.         TexColorOp = NoSet
  1833.       )
  1834.       Layer '3'
  1835.       (
  1836.         Map = water_lm
  1837.         TexColorOp = NoSet
  1838.         
  1839.         //DepthWrite = 1
  1840.         Blend    'SRC_ALPHA ONE_MINUS_SRC_ALPHA'
  1841.       )
  1842.     )
  1843.   )
  1844.  
  1845.   // include shader low spec water shader
  1846.   LOWSPEC_WATER_SHADER  
  1847. )
  1848.  
  1849. Shader 'TemplLakeRefr'
  1850. (
  1851.   Public
  1852.   (
  1853.     float 'BumpAmountX' (0.15)
  1854.     float 'BumpAmountY' (0.2)
  1855.     float 'WaveAmplitude' (0.1)
  1856.     float 'Opacity' (0.9)
  1857.   )
  1858.   
  1859.   Params
  1860.   (
  1861.     Sort = Water
  1862.     Cull = TwoSided
  1863.     ClipPlane = Back
  1864.   )
  1865.   
  1866.   RenderParams
  1867.   {
  1868.     DrawFarSprites
  1869.     DrawStaticObjects
  1870.     DrawParticles
  1871.     DrawEntities
  1872.     DrawIndoors
  1873.     DrawWater
  1874.     DrawDetailTextures
  1875.     DrawDetailObjects
  1876.     FullDetailTerrain
  1877.     DrawTerrain
  1878.     UpdateFactor = 0.001
  1879.   }
  1880.   
  1881.   HW 'Seq'
  1882.   (
  1883.     Conditions
  1884.     {
  1885.       Vars
  1886.       {        
  1887.         r_WaterRefractions = 1
  1888.       }
  1889.     }  
  1890.     
  1891.     Array (Verts 3 FLOAT Vertex)
  1892.     Array (Texture0 2 Float Texture0)
  1893.     Array (Color 4 BYTE Color)
  1894.  
  1895.     ShadeLayer
  1896.     (
  1897.       CGPShader   = CGRCWater_Refr
  1898.       CGPSParam ( Name = Matrix User 'BumpAmountX' Comp = 0 Comp = 0 User 'BumpAmountY' )
  1899.       CGPSParam ( Name = WaterColor Comp = 1 Comp = 1 Comp = 1 Comp = 1)  // Water color
  1900.  
  1901.       CGVProgram = CGVProgWater_LakeRefr
  1902.       CGVPParam ( Name = TexProjMatrix TranspTexViewProjMatrix = 1)  // Texture matrix for projection
  1903.  
  1904.       Layer '0'
  1905.       (
  1906.         TexType = DSDTBump
  1907.         Map = $DSDTBump
  1908.         TexColorOp = NoSet
  1909.       )
  1910.  
  1911.       Layer '1'
  1912.       (
  1913.         Map = $EnvironmentTexture
  1914.           
  1915.         //Texgen = Projection
  1916.         TexColorOp = NoSet
  1917.       )
  1918.     )
  1919.   )
  1920.   
  1921.   // include shader low spec water shader
  1922.   LOWSPEC_WATER_SHADER    
  1923. )
  1924.  
  1925. Shader 'TerrainWater_OnlySky'
  1926. (
  1927.   Public
  1928.   (
  1929.     float 'BumpAmountX' (0.012)
  1930.     float 'BumpAmountY' (0.010)
  1931.     float 'RefrBumpAmountX' (0.012)
  1932.     float 'RefrBumpAmountY' (0.010)
  1933.     float 'WaveAmplitude' (0.1)
  1934.     float 'ReflectAmount' (0.9)
  1935.     float 'ReflectAddAmount' (0.2)
  1936.     float 'Opacity' (1)
  1937.     
  1938.     // water refraction shared parameters    
  1939.     WATER_REFRACTION_PARAMS
  1940.   )
  1941.   
  1942.   Params
  1943.   (
  1944.     Sort = Water
  1945.     Cull = TwoSided
  1946.     ClipPlane = Back
  1947.   )
  1948.   
  1949.   RenderParams
  1950.   {
  1951.     FullDetailTerrain
  1952.     DrawTerrain
  1953.   }
  1954.   
  1955.   HW
  1956.   (
  1957.     Conditions
  1958.     {
  1959.       Vars
  1960.       {
  1961.         r_PolygonMode = 2
  1962.       }
  1963.     }
  1964.     
  1965.     Array (Verts 3 FLOAT Vertex)
  1966.     Array (Color 4 BYTE Color)
  1967.  
  1968.     ShadeLayer
  1969.     (
  1970.       Layer '1'
  1971.       (
  1972.         Map                  = Textures/liquids/W01blue03
  1973.         //Procedure            = HeavyRain01
  1974.         TexGen               'HW_ObjectLinear'
  1975.         {
  1976.           Mask = 3
  1977.           PlaneS (Comp = 0.125 Comp = 0 Comp = 0 Comp 'CameraPos pos 0 / 8')
  1978.           PlaneT (Comp = 0 Comp = 0.125 Comp = 0 Comp 'CameraPos pos 1 / 8')
  1979.         }
  1980.         Blend                'SRC_ALPHA ONE_MINUS_SRC_ALPHA'
  1981.         //RgbGen               'Fixed' (0.6 0.6 0.6 0.6)
  1982.         TexColorOp = Modulate
  1983.         DepthWrite = 1
  1984.       )
  1985.     )
  1986.   )
  1987.  
  1988.   HW 'Seq'
  1989.   (
  1990.     Conditions
  1991.     {
  1992.       Vars
  1993.       {
  1994.         r_WaterRefractions = 1
  1995.         r_WaterReflections = 1
  1996.       }
  1997.     }
  1998.   
  1999.     Array (Verts 3 FLOAT Vertex)
  2000.     Array (Color 4 BYTE Color)
  2001.     //Array (Texture0 2 Float Texture0)
  2002.  
  2003.     // water refraction pass (cheap)
  2004.     WATER_REFRACTION
  2005.  
  2006.     ShadeLayer
  2007.     (
  2008.       CGPShader   = CGRCWater
  2009.       CGPSParam ( Name = Matrix User 'BumpAmountX' Comp = 0 Comp = 0 User 'BumpAmountY' )
  2010.       CGPSParam ( Name = WaterColor Comp = 1 Comp = 1 Comp = 1 Comp = 1)  // Water color
  2011.       CGPSParam ( Name = ReflectAmount User 'ReflectAmount' User 'ReflectAmount' User 'ReflectAmount' User 'Opacity')  // Water color
  2012.       CGPSParam ( Name = ReflectAddAmount User 'ReflectAddAmount' User 'ReflectAddAmount' User 'ReflectAddAmount' Comp = 1)  // Water color
  2013.  
  2014.       CGVProgram = CGVProgWater
  2015.       CGVPParam ( Name = CameraPos Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2' Comp = 0.15)
  2016.       CGVPParam ( Name = TexShiftRipple Comp 'time 0.06' Comp 'time 0.12')  // xy = ripple uv ADDer
  2017.       CGVPParam ( Name = TexGenRipple0 Comp = 0.125 Comp = 0 Comp = 0 Comp = 0)  // Ripple texgen
  2018.       CGVPParam ( Name = TexGenRipple1 Comp = 0 Comp = 0.125 Comp = 0 Comp = 0)  // Ripple texgen
  2019.       CGVPParam ( Name = TexDetailScale Comp = 0.08 Comp = 0.08 )  // xy = detail uv Scale
  2020.       CGVPParam ( Name = TexProjMatrix TranspTexViewProjMatrix = 1)  // Texture matrix for projection
  2021.  
  2022.       Layer '0'
  2023.       (
  2024.         TexType = DSDTBump
  2025.         TexFilter = TriLinear
  2026.         Sequence (Maps = textures/animated/water/caust##00_31_ddt Time = 0.05 Loop)
  2027.         TexColorOp = NoSet
  2028.       )
  2029.       Layer '1'
  2030.       (
  2031.         Map = $WaterMap
  2032.         Projected
  2033.         TexColorOp = NoSet
  2034.       )
  2035.       Layer '2'
  2036.       (
  2037.         Map = Defaults/fresnel14
  2038.         ClampTexCoords
  2039.         TexColorOp = NoSet
  2040.       )
  2041.       Layer '3'
  2042.       (
  2043.         //Sequence(Maps = textures/animated/water/caust## Time = 0.05 Loop)
  2044.         Map = water_lm
  2045.         TexColorOp = NoSet
  2046.         
  2047.         Blend    'SRC_ALPHA ONE_MINUS_SRC_ALPHA'
  2048.       )
  2049.     )
  2050.   )
  2051.  
  2052.   HW 'Seq'
  2053.   (
  2054.     Conditions
  2055.     {
  2056.       Vars
  2057.       {
  2058.         r_WaterRefractions = 0
  2059.         r_WaterReflections = 1
  2060.       }
  2061.     }
  2062.   
  2063.     Array (Verts 3 FLOAT Vertex)
  2064.     Array (Color 4 BYTE Color)
  2065.     //Array (Texture0 2 Float Texture0)
  2066.  
  2067.     ShadeLayer
  2068.     (
  2069.       CGPShader   = CGRCWater
  2070.       CGPSParam ( Name = Matrix User 'BumpAmountX' Comp = 0 Comp = 0 User 'BumpAmountY' )
  2071.       CGPSParam ( Name = WaterColor Comp = 1 Comp = 1 Comp = 1 Comp = 1)  // Water color
  2072.       CGPSParam ( Name = ReflectAmount User 'ReflectAmount' User 'ReflectAmount' User 'ReflectAmount' User 'Opacity')  // Water color
  2073.       CGPSParam ( Name = ReflectAddAmount User 'ReflectAddAmount' User 'ReflectAddAmount' User 'ReflectAddAmount' Comp = 1)  // Water color
  2074.  
  2075.       CGVProgram = CGVProgWater
  2076.       CGVPParam ( Name = CameraPos Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2' Comp = 0.15)
  2077.       CGVPParam ( Name = TexShiftRipple Comp 'time 0.06' Comp 'time 0.12')  // xy = ripple uv ADDer
  2078.       CGVPParam ( Name = TexGenRipple0 Comp = 0.125 Comp = 0 Comp = 0 Comp = 0)  // Ripple texgen
  2079.       CGVPParam ( Name = TexGenRipple1 Comp = 0 Comp = 0.125 Comp = 0 Comp = 0)  // Ripple texgen
  2080.       CGVPParam ( Name = TexDetailScale Comp = 0.08 Comp = 0.08 )  // xy = detail uv Scale
  2081.       CGVPParam ( Name = TexProjMatrix TranspTexViewProjMatrix = 1)  // Texture matrix for projection
  2082.  
  2083.       Layer '0'  
  2084.       (
  2085.         TexType = DSDTBump 
  2086.         TexFilter = TriLinear 
  2087.         Sequence (Maps = textures/animated/water/caust##00_31_ddt Time = 0.05 Loop ) 
  2088.         TexColorOp = NoSet
  2089.       )
  2090.       Layer '1'
  2091.       (
  2092.         Map = $WaterMap
  2093.         Projected
  2094.         TexColorOp = NoSet
  2095.       )
  2096.       Layer '2'
  2097.       (
  2098.         Map = Defaults/fresnel14
  2099.         ClampTexCoords
  2100.         TexColorOp = NoSet
  2101.       )
  2102.       Layer '3'
  2103.       (
  2104.         Map = water_lm
  2105.         TexColorOp = NoSet
  2106.         
  2107.         Blend    'SRC_ALPHA ONE_MINUS_SRC_ALPHA'
  2108.       )
  2109.     )
  2110. /*
  2111. #ifdef SUPPORT_PROFILE_PS_2_0
  2112.     Light
  2113.     (         
  2114.       ShadeLayer
  2115.       (
  2116.         CGVProgram = CGVProgBumpSunGlow_VS20
  2117.         CGVPParam ( Name = CameraPos Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2' Comp = 0.15)
  2118.         CGVPParam ( Name = TexShiftRipple Comp 'time 0.06' Comp 'time 0.12')  // xy = ripple uv ADDer
  2119.         CGVPParam ( Name = LightPos Comp 'SunFlarePos[0]' Comp 'SunFlarePos[1]' Comp 'SunFlarePos[2]' Comp=1)
  2120.         CGVPParam ( Name = TexGenRipple0 Comp = 0.125 Comp = 0 Comp = 0 Comp = 0)  // Ripple texgen
  2121.         CGVPParam ( Name = TexGenRipple1 Comp = 0 Comp = 0.125 Comp = 0 Comp = 0)  // Ripple texgen
  2122.         CGVPParam ( Name = Normal Comp = 0 Comp = 0 Comp = 1)  // Normal
  2123.         CGVPParam ( Name = Tangent Comp = 0 Comp = -1 Comp = 0 ) // Tangent
  2124.  
  2125.         CGPShader = CGRCBumpSunGlow_PS20
  2126.         //CGPSParam ( Name = Specular Comp 'SpecLightColor[0]'  Comp 'SpecLightColor[1]' Comp 'SpecLightColor[2]' Comp = 1 )
  2127.         CGPSParam ( Name = Specular Comp = 0.6  Comp = 0.6 Comp = 0.4 Comp = 30 )
  2128.         CGPSParam ( Name = BumpAmount User 'BumpAmountX' User 'BumpAmountY' Comp=1)
  2129.  
  2130.         Layer '0'
  2131.         (
  2132.           TexType = Bumpmap
  2133.           //Map = test8
  2134.           //BumpHighRes
  2135.           BumpAmount = 0.1
  2136.           //TexLodBias = 1
  2137.           Sequence (Maps = textures/animated/water/caust##00_31_ddn Time = 0.05 Loop)
  2138.           TexColorOp = NoSet
  2139.           Blend 'ONE ONE'
  2140.         )
  2141.       )
  2142.     )
  2143. #endif
  2144. */
  2145. //#ifdef OTHER
  2146.     Light
  2147.     (         
  2148.       ShadeLayer
  2149.       (
  2150.         CGVProgram = CGVProgBumpSunGlow
  2151.         CGVPParam ( Name = CameraPos Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2' Comp = 0.15)
  2152.         CGVPParam ( Name = TexShiftRipple Comp 'time 0.06' Comp 'time 0.12')  // xy = ripple uv ADDer
  2153.         CGVPParam ( Name = LightPos Comp 'SunFlarePos[0]' Comp 'SunFlarePos[1]' Comp 'SunFlarePos[2]' Comp=1)
  2154.         CGVPParam ( Name = TexGenRipple0 Comp = 0.125 Comp = 0 Comp = 0 Comp = 0)  // Ripple texgen
  2155.         CGVPParam ( Name = TexGenRipple1 Comp = 0 Comp = 0.125 Comp = 0 Comp = 0)  // Ripple texgen
  2156.         CGVPParam ( Name = Normal Comp = 0 Comp = 0 Comp = 1)  // Normal
  2157.         CGVPParam ( Name = Tangent Comp = 0 Comp = -1 Comp = 0 ) // Tangent
  2158.  
  2159.         CGPShader = CGRCBumpSunGlow
  2160.         //CGPSParam ( Name = Specular Comp 'SpecLightColor[0]'  Comp 'SpecLightColor[1]' Comp 'SpecLightColor[2]' Comp = 1 )
  2161.         CGPSParam ( Name = Specular Comp = 0.8  Comp = 0.8 Comp = 0.3 Comp = 1 )
  2162.  
  2163.         Layer '0'
  2164.         (
  2165.           TexType = Bumpmap
  2166.           //Map = test8
  2167.           BumpHighRes
  2168.           BumpAmount = 0.8
  2169.           TexLodBias = 0.5
  2170.           Sequence (Maps = textures/animated/water/caust##00_31 Time = 0.05 Loop)
  2171.           TexColorOp = NoSet
  2172.         )
  2173.  
  2174.         Layer '1'
  2175.         (
  2176.           Map = $None
  2177.           TexColorOp = NoSet
  2178.         )
  2179.  
  2180.         Layer '2'
  2181.         (
  2182.           Blend 'ONE ONE'        
  2183.           Map = $Phong_35
  2184.           TexLodBias = 1
  2185.           TexColorOp = NoSet
  2186.         )
  2187.       )
  2188.     )
  2189. //#endif
  2190.   )
  2191.   
  2192.   // include shader low spec water shader
  2193.   LOWSPEC_WATER_SHADER
  2194. )
  2195.  
  2196. Shader 'TerrainWater_OnlySky_NoTerrain'
  2197. (
  2198.   Public
  2199.   (
  2200.     float 'BumpAmountX' (0.012)
  2201.     float 'BumpAmountY' (0.010)
  2202.     float 'RefrBumpAmountX' (0.012)
  2203.     float 'RefrBumpAmountY' (0.010)
  2204.     float 'WaveAmplitude' (0.1)
  2205.     float 'ReflectAmount' (0.9)
  2206.     float 'ReflectAddAmount' (0.2)
  2207.     float 'Opacity' (1)
  2208.     
  2209.     // water refraction shared parameters    
  2210.     WATER_REFRACTION_PARAMS
  2211.   )
  2212.   
  2213.   Params
  2214.   (
  2215.     Sort = Water
  2216.     Cull = TwoSided
  2217.     ClipPlane = Back
  2218.   )
  2219.   
  2220.   RenderParams
  2221.   {
  2222.   }
  2223.   
  2224.   HW
  2225.   (
  2226.     Conditions
  2227.     {
  2228.       Vars
  2229.       {
  2230.         r_PolygonMode = 2
  2231.       }
  2232.     }
  2233.     
  2234.     Array (Verts 3 FLOAT Vertex)
  2235.     Array (Color 4 BYTE Color)
  2236.  
  2237.     ShadeLayer
  2238.     (
  2239.       Layer '1'
  2240.       (
  2241.         Map                  = Textures/liquids/W01blue03
  2242.         //Procedure            = HeavyRain01
  2243.         TexGen               'HW_ObjectLinear'
  2244.         {
  2245.           Mask = 3
  2246.           PlaneS (Comp = 0.125 Comp = 0 Comp = 0 Comp 'CameraPos pos 0 / 8')
  2247.           PlaneT (Comp = 0 Comp = 0.125 Comp = 0 Comp 'CameraPos pos 1 / 8')
  2248.         }
  2249.         Blend                'SRC_ALPHA ONE_MINUS_SRC_ALPHA'
  2250.         //RgbGen               'Fixed' (0.6 0.6 0.6 0.6)
  2251.         TexColorOp = Modulate
  2252.         DepthWrite = 1
  2253.       )
  2254.     )
  2255.   )
  2256.  
  2257.   HW 'Seq'
  2258.   (
  2259.     Conditions
  2260.     {
  2261.       Vars
  2262.       {
  2263.         r_WaterRefractions = 1
  2264.         r_WaterReflections = 1
  2265.       }
  2266.     }
  2267.   
  2268.     Array (Verts 3 FLOAT Vertex)
  2269.     Array (Color 4 BYTE Color)
  2270.     //Array (Texture0 2 Float Texture0)
  2271.  
  2272.     // water refraction pass (cheap)
  2273.     WATER_REFRACTION
  2274.  
  2275.     ShadeLayer
  2276.     (
  2277.       CGPShader   = CGRCWater
  2278.       CGPSParam ( Name = Matrix User 'BumpAmountX' Comp = 0 Comp = 0 User 'BumpAmountY' )
  2279.       CGPSParam ( Name = WaterColor Comp = 1 Comp = 1 Comp = 1 Comp = 1)  // Water color
  2280.       CGPSParam ( Name = ReflectAmount User 'ReflectAmount' User 'ReflectAmount' User 'ReflectAmount' User 'Opacity')  // Water color
  2281.       CGPSParam ( Name = ReflectAddAmount User 'ReflectAddAmount' User 'ReflectAddAmount' User 'ReflectAddAmount' Comp = 1)  // Water color
  2282.  
  2283.       CGVProgram = CGVProgWater
  2284.       CGVPParam ( Name = CameraPos Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2' Comp = 0.15)
  2285.       CGVPParam ( Name = TexShiftRipple Comp 'time 0.06' Comp 'time 0.12')  // xy = ripple uv ADDer
  2286.       CGVPParam ( Name = TexGenRipple0 Comp = 0.125 Comp = 0 Comp = 0 Comp = 0)  // Ripple texgen
  2287.       CGVPParam ( Name = TexGenRipple1 Comp = 0 Comp = 0.125 Comp = 0 Comp = 0)  // Ripple texgen
  2288.       CGVPParam ( Name = TexDetailScale Comp = 0.08 Comp = 0.08 )  // xy = detail uv Scale
  2289.       CGVPParam ( Name = TexProjMatrix TranspTexViewProjMatrix = 1)  // Texture matrix for projection
  2290.  
  2291.       Layer '0'
  2292.       (
  2293.         TexType = DSDTBump
  2294.         TexFilter = TriLinear
  2295.         Sequence (Maps = textures/animated/water/caust##00_31_ddt Time = 0.05 Loop)
  2296.         TexColorOp = NoSet
  2297.       )
  2298.       Layer '1'
  2299.       (
  2300.         Map = $WaterMap
  2301.         Projected
  2302.         TexColorOp = NoSet
  2303.       )
  2304.       Layer '2'
  2305.       (
  2306.         Map = Defaults/fresnel14
  2307.         ClampTexCoords
  2308.         TexColorOp = NoSet
  2309.       )
  2310.       Layer '3'
  2311.       (
  2312.         //Sequence(Maps = textures/animated/water/caust## Time = 0.05 Loop)
  2313.         Map = water_lm
  2314.         TexColorOp = NoSet
  2315.         
  2316.         Blend    'SRC_ALPHA ONE_MINUS_SRC_ALPHA'
  2317.       )
  2318.     )
  2319.   )
  2320.  
  2321.   HW 'Seq'
  2322.   (
  2323.     Conditions
  2324.     {
  2325.       Vars
  2326.       {
  2327.         r_WaterRefractions = 0
  2328.         r_WaterReflections = 1
  2329.       }
  2330.     }
  2331.   
  2332.     Array (Verts 3 FLOAT Vertex)
  2333.     Array (Color 4 BYTE Color)
  2334.     //Array (Texture0 2 Float Texture0)
  2335.  
  2336.     ShadeLayer
  2337.     (
  2338.       CGPShader   = CGRCWater
  2339.       CGPSParam ( Name = Matrix User 'BumpAmountX' Comp = 0 Comp = 0 User 'BumpAmountY' )
  2340.       CGPSParam ( Name = WaterColor Comp = 1 Comp = 1 Comp = 1 Comp = 1)  // Water color
  2341.       CGPSParam ( Name = ReflectAmount User 'ReflectAmount' User 'ReflectAmount' User 'ReflectAmount' User 'Opacity')  // Water color
  2342.       CGPSParam ( Name = ReflectAddAmount User 'ReflectAddAmount' User 'ReflectAddAmount' User 'ReflectAddAmount' Comp = 1)  // Water color
  2343.  
  2344.       CGVProgram = CGVProgWater
  2345.       CGVPParam ( Name = CameraPos Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2' Comp = 0.15)
  2346.       CGVPParam ( Name = TexShiftRipple Comp 'time 0.06' Comp 'time 0.12')  // xy = ripple uv ADDer
  2347.       CGVPParam ( Name = TexGenRipple0 Comp = 0.125 Comp = 0 Comp = 0 Comp = 0)  // Ripple texgen
  2348.       CGVPParam ( Name = TexGenRipple1 Comp = 0 Comp = 0.125 Comp = 0 Comp = 0)  // Ripple texgen
  2349.       CGVPParam ( Name = TexDetailScale Comp = 0.08 Comp = 0.08 )  // xy = detail uv Scale
  2350.       CGVPParam ( Name = TexProjMatrix TranspTexViewProjMatrix = 1)  // Texture matrix for projection
  2351.  
  2352.       Layer '0'  
  2353.       (
  2354.         TexType = DSDTBump 
  2355.         TexFilter = TriLinear 
  2356.         Sequence (Maps = textures/animated/water/caust##00_31_ddt Time = 0.05 Loop ) 
  2357.         TexColorOp = NoSet
  2358.       )
  2359.       Layer '1'
  2360.       (
  2361.         Map = $WaterMap
  2362.         Projected
  2363.         TexColorOp = NoSet
  2364.       )
  2365.       Layer '2'
  2366.       (
  2367.         Map = Defaults/fresnel14
  2368.         ClampTexCoords
  2369.         TexColorOp = NoSet
  2370.       )
  2371.       Layer '3'
  2372.       (
  2373.         Map = water_lm
  2374.         TexColorOp = NoSet
  2375.         
  2376.         Blend    'SRC_ALPHA ONE_MINUS_SRC_ALPHA'
  2377.       )
  2378.     )
  2379.  
  2380. /*
  2381. #ifdef SUPPORT_PROFILE_PS_2_0
  2382.     Light
  2383.     (         
  2384.       ShadeLayer
  2385.       (
  2386.         CGVProgram = CGVProgBumpSunGlow_VS20
  2387.         CGVPParam ( Name = CameraPos Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2' Comp = 0.15)
  2388.         CGVPParam ( Name = TexShiftRipple Comp 'time 0.06' Comp 'time 0.12')  // xy = ripple uv ADDer
  2389.         CGVPParam ( Name = LightPos Comp 'SunFlarePos[0]' Comp 'SunFlarePos[1]' Comp 'SunFlarePos[2]' Comp=1)
  2390.         CGVPParam ( Name = TexGenRipple0 Comp = 0.125 Comp = 0 Comp = 0 Comp = 0)  // Ripple texgen
  2391.         CGVPParam ( Name = TexGenRipple1 Comp = 0 Comp = 0.125 Comp = 0 Comp = 0)  // Ripple texgen
  2392.         CGVPParam ( Name = Normal Comp = 0 Comp = 0 Comp = 1)  // Normal
  2393.         CGVPParam ( Name = Tangent Comp = 0 Comp = -1 Comp = 0 ) // Tangent
  2394.  
  2395.         CGPShader = CGRCBumpSunGlow_PS20
  2396.         //CGPSParam ( Name = Specular Comp 'SpecLightColor[0]'  Comp 'SpecLightColor[1]' Comp 'SpecLightColor[2]' Comp = 1 )
  2397.         CGPSParam ( Name = Specular Comp = 0.6  Comp = 0.6 Comp = 0.4 Comp = 30 )
  2398.         CGPSParam ( Name = BumpAmount User 'BumpAmountX' User 'BumpAmountY' Comp=1)
  2399.  
  2400.         Layer '0'
  2401.         (
  2402.           TexType = Bumpmap
  2403.           //Map = test8
  2404.           //BumpHighRes
  2405.           BumpAmount = 0.1
  2406.           //TexLodBias = 1
  2407.           Sequence (Maps = textures/animated/water/caust##00_31_ddn Time = 0.05 Loop)
  2408.           TexColorOp = NoSet
  2409.           Blend 'ONE ONE'
  2410.         )
  2411.       )
  2412.     )
  2413. #endif
  2414. */
  2415.  
  2416. //#ifdef OTHER
  2417.     Light
  2418.     (         
  2419.       ShadeLayer
  2420.       (
  2421.         CGVProgram = CGVProgBumpSunGlow
  2422.         CGVPParam ( Name = CameraPos Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2' Comp = 0.15)
  2423.         CGVPParam ( Name = TexShiftRipple Comp 'time 0.06' Comp 'time 0.12')  // xy = ripple uv ADDer
  2424.         CGVPParam ( Name = LightPos Comp 'SunFlarePos[0]' Comp 'SunFlarePos[1]' Comp 'SunFlarePos[2]' Comp=1)
  2425.         CGVPParam ( Name = TexGenRipple0 Comp = 0.125 Comp = 0 Comp = 0 Comp = 0)  // Ripple texgen
  2426.         CGVPParam ( Name = TexGenRipple1 Comp = 0 Comp = 0.125 Comp = 0 Comp = 0)  // Ripple texgen
  2427.         CGVPParam ( Name = Normal Comp = 0 Comp = 0 Comp = 1)  // Normal
  2428.         CGVPParam ( Name = Tangent Comp = 0 Comp = -1 Comp = 0 ) // Tangent
  2429.  
  2430.         CGPShader = CGRCBumpSunGlow
  2431.         //CGPSParam ( Name = Specular Comp 'SpecLightColor[0]'  Comp 'SpecLightColor[1]' Comp 'SpecLightColor[2]' Comp = 1 )
  2432.         CGPSParam ( Name = Specular Comp = 0.8  Comp = 0.8 Comp = 0.3 Comp = 1 )
  2433.  
  2434.         Layer '0'
  2435.         (
  2436.           TexType = Bumpmap
  2437.           //Map = test8
  2438.           BumpHighRes
  2439.           BumpAmount = 0.8
  2440.           TexLodBias = 0.5
  2441.           Sequence (Maps = textures/animated/water/caust##00_31 Time = 0.05 Loop)
  2442.           TexColorOp = NoSet
  2443.         )
  2444.  
  2445.         Layer '1'
  2446.         (
  2447.           Map = $None
  2448.           TexColorOp = NoSet
  2449.         )
  2450.  
  2451.         Layer '2'
  2452.         (
  2453.           Blend 'ONE ONE'        
  2454.           Map = $Phong_35
  2455.           TexLodBias = 1
  2456.           TexColorOp = NoSet
  2457.         )
  2458.       )
  2459.     )
  2460. //#endif
  2461.  
  2462.   )
  2463.   
  2464.   // include shader low spec water shader
  2465.   LOWSPEC_WATER_SHADER
  2466. )
  2467.  
  2468. Shader 'TerrainDeepWater'
  2469. (
  2470.   Public
  2471.   (
  2472.     float 'BumpAmountX' (0.25)
  2473.     float 'BumpAmountY' (0.25)
  2474.   )
  2475.   Params
  2476.   (
  2477.     Sort = Water
  2478.     Cull = TwoSided
  2479.     ClipPlane = Back
  2480.   )
  2481.   ClientEffect 'Ocean'
  2482.   {
  2483.     Depth = 1
  2484.     Gravity = 9.81
  2485.     Speed = 0.2
  2486.     WindDirection = 0
  2487.     WindSpeed = 45
  2488.     WaveHeight = 64
  2489.     DirectionalDependence = 4
  2490.     ChoppyWaveFactor = 0.025
  2491.     SuppressSmallWavesFactor = 0.00001
  2492.   }
  2493.   RenderParams
  2494.   {
  2495.     //DrawFarSprites
  2496.     //DrawStaticObjects
  2497.     //DrawParticles
  2498.     //DrawEntities
  2499.     //DrawIndoors
  2500.     //DrawDetailTextures
  2501.     //UpdateFactor = 0.001
  2502.     FullDetailTerrain
  2503.     DrawTerrain
  2504.   }
  2505.   
  2506.   HW 'Seq'
  2507.   (
  2508.     Conditions
  2509.     {
  2510.       Vars
  2511.       {
  2512.         r_WaterReflections = 1
  2513.       }
  2514.     }
  2515.     
  2516.     ShadeLayer
  2517.     (
  2518.       CGPShader   = CGRCOcean
  2519.       CGPSParam ( Name = Matrix User 'BumpAmountX' Comp = 0 Comp = 0 User 'BumpAmountY' )
  2520.       CGPSParam ( Name = WaterColor0 Comp = 0.04 Comp = 0.148 Comp = 0.26 Comp = 1)  // Water color
  2521.       CGPSParam ( Name = WaterColor1 Comp = 0.16 Comp = 0.38 Comp = 0.45 Comp = 1)  // Water color
  2522.  
  2523.       CGVProgram = CGVProgOcean
  2524.       CGVPParam ( Name = CameraPos  Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2' Comp = 0)
  2525.       CGVPParam ( Name = ColorMinFresnel Comp = 0.1 Comp = 0.1 Comp = 0.05 Comp = 1)  // Water color fresnel range
  2526.       CGVPParam ( Name = ColorMaxFresnel Comp = 1.2 Comp = 1.2 Comp = 1.05 Comp = 1)  // Water color fresnel range
  2527.       CGVPParam ( Name = RippleTexGen0 Comp = 0.0078125 Comp = 0 Comp = 0 Comp 'CameraPos pos 0 / 128')  // Ripple texgen
  2528.       CGVPParam ( Name = RippleTexGen1 Comp = 0 Comp = 0.0078125 Comp = 0 Comp 'CameraPos pos 1 / 128')  // Ripple texgen
  2529.       CGVPParam ( Name = WaterParams Comp 'WaterLevel' Comp = 0 Comp = 0.066 Comp = 0.5)  // Water level
  2530.       CGVPParam ( Name = PosScale Comp = 256 Comp = 256 Comp = 6 Comp = 1)  // Mesh Scale
  2531.       CGVPParam ( Name = Constants Comp = 0.00000 Comp = 8 Comp = -1 Comp = 8)                                // Curvature, power factor for fresnel term approximation
  2532.       CGVPParam ( Name = ReflectMatrix TranspTexViewProjMatrix = 1)  // Texture matrix for projection
  2533.       
  2534.       Layer '0'
  2535.       (
  2536.         Map    = $FromRE
  2537.         TexColorOp = NoSet
  2538.       )
  2539.       Layer '1'
  2540.       (
  2541.         Map = $WaterMap
  2542.         Projected
  2543.         TexColorOp = NoSet
  2544.       )
  2545.     )
  2546.   )
  2547.  
  2548.   HW 'Seq'
  2549.   (
  2550.     ShadeLayer
  2551.     (      
  2552.       CGPShader   = CGRCOcean_NoRefl
  2553.       CGPSParam ( Name = Matrix User 'BumpAmountX' Comp = 0 Comp = 0 User 'BumpAmountY' )
  2554.       CGPSParam ( Name = WaterColor0 Comp = 0.04 Comp = 0.148 Comp = 0.26 Comp = 1)  // Water color
  2555.       CGPSParam ( Name = WaterColor1 Comp = 0.16 Comp = 0.38 Comp = 0.45 Comp = 1)  // Water color
  2556.  
  2557.       CGVProgram = CGVProgOcean_NoRefl
  2558.       CGVPParam ( Name = CameraPos  Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2' Comp = 0)
  2559.       CGVPParam ( Name = ColorMinFresnel Comp = 0.1 Comp = 0.1 Comp = 0.05 Comp = 1)  // Water color fresnel range
  2560.       CGVPParam ( Name = ColorMaxFresnel Comp = 1.2 Comp = 1.2 Comp = 1.05 Comp = 1)  // Water color fresnel range
  2561.       CGVPParam ( Name = RippleTexGen0 Comp = 0.0078125 Comp = 0 Comp = 0 Comp 'CameraPos pos 0 / 128')  // Ripple texgen
  2562.       CGVPParam ( Name = RippleTexGen1 Comp = 0 Comp = 0.0078125 Comp = 0 Comp 'CameraPos pos 1 / 128')  // Ripple texgen
  2563.       CGVPParam ( Name = WaterParams Comp 'WaterLevel' Comp = 0 Comp = 0.066 Comp = 0.5)  // Water level
  2564.       CGVPParam ( Name = PosScale Comp = 256 Comp = 256 Comp = 6 Comp = 1)  // Mesh Scale
  2565.       CGVPParam ( Name = Constants Comp = 0.00001 Comp = 8 Comp = -1 Comp = 8)                                // Curvature, power factor for fresnel term approximation
  2566.       CGVPParam ( Name = ReflectMatrix TranspTexViewProjMatrix = 1)  // Texture matrix for projection
  2567.       CGVPParam ( Name = BaseTexGen0 Comp = 0.015625 Comp = 0 Comp = 0 Comp 'CameraPos pos 0 / 64')  // Base texgen
  2568.       CGVPParam ( Name = BaseTexGen1 Comp = 0 Comp = 0.015625 Comp = 0 Comp 'CameraPos pos 1 / 64')  // Base texgen
  2569.  
  2570.       Layer '0'
  2571.       (
  2572.         Map    = $FromRE
  2573.         TexColorOp = NoSet
  2574.       )
  2575.       Layer '1'
  2576.       (
  2577.         Map = water_lm          
  2578.         TexColorOp = NoSet
  2579.       )
  2580.     )
  2581.   )
  2582. )
  2583.  
  2584. Shader 'TerrainOcean2'
  2585. (
  2586.   Public
  2587.   (
  2588.     float 'DynamicRange' (4)
  2589.   )
  2590.   Params
  2591.   (
  2592.     Sort = Water
  2593.     Cull = TwoSided
  2594.     //ClipPlane = Back
  2595.   )
  2596.   ClientEffect 'Ocean'
  2597.   {
  2598.   }
  2599.   RenderParams
  2600.   {
  2601.     DrawFarSprites
  2602.     DrawStaticObjects
  2603.     DrawParticles
  2604.     DrawEntities
  2605.     DrawIndoors
  2606.     DrawDetailTextures
  2607.     UpdateFactor = 0.001
  2608.   }
  2609.   
  2610.   HW 'Seq'
  2611.   (
  2612.     //Array (Verts 3 FLOAT Vertex)
  2613.     //Array (Texture0 2 Float Texture0)
  2614.     //Array (Color 4 BYTE Color)
  2615.  
  2616.     ShadeLayer
  2617.     (
  2618.       CGPSHader = CGRCOcean2
  2619.       CGPSParam ( Name = WaterColor0 Comp = 0.64 Comp = 0.798 Comp = 0.86 Comp = 1)  // Water color
  2620.       CGPSParam ( Name = WaterColor1 Comp = 0.763 Comp = 1 Comp = 1 Comp = 1)  // Water color
  2621.  
  2622.       CGVProgram = CGVProgOcean2
  2623.       CGVPParam ( Reg = 4  Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2' Comp = 0)
  2624.       CGVPParam ( Reg = 5 Comp = 0 Comp = 0.5 Comp = 1 Comp = 2)          // Constants
  2625.       CGVPParam ( Reg = 6 Comp = 1 Comp = 0 Comp = 0 Comp = 1)            // Constants
  2626.       CGVPParam ( Reg = 8 Comp = 0.125 Comp = 0 Comp = 0 Comp 'CameraPos pos 0 / 8')  // Ripple texgen
  2627.       CGVPParam ( Reg = 9 Comp = 0 Comp = 0.125 Comp = 0 Comp 'CameraPos pos 1 / 8')  // Ripple texgen
  2628.       CGVPParam ( Reg = 10 Comp 'time 0.06' Comp 'time 0.12')  // xy = ripple uv ADDer
  2629.       CGVPParam ( Reg = 11 Comp = 512 Comp = 512 Comp = 4 Comp = 1)  // Mesh Scale
  2630.       CGVPParam ( Reg = 13 Comp = 0.00001)                                // Curvature
  2631.       CGVPParam ( Reg = 14 Comp = 8)                                      // power factor for fresnel term approximation
  2632.       CGVPParam ( Reg = 15 User 'DynamicRange' Comp = 0.25  Comp = 0.15)  // factor for dynamic range of env map
  2633.       
  2634.       Layer '0'
  2635.       (
  2636.         TexType = Bumpmap
  2637.         Map = t00/white //test8
  2638.         //Sequence (Maps = textures/animated/water/caust## Time = 0.05 Loop)
  2639.         TexColorOp = NoSet
  2640.       )
  2641.       Layer '1'
  2642.       (
  2643.         Map = $None
  2644.         TexColorOp = NoSet
  2645.       )
  2646.       Layer '2'
  2647.       (
  2648.         Map = $None
  2649.         TexColorOp = NoSet
  2650.       )
  2651.       Layer '3'
  2652.       (
  2653.         Map = $EnvironmentCubemap
  2654.         TexType = Cubemap
  2655.         TexColorOp = NoSet
  2656.       )
  2657.     )
  2658.   )
  2659. )
  2660.  
  2661. //==================================================================
  2662. //==================================================================
  2663. //==================================================================
  2664.  
  2665. Shader 'DuckWeed'
  2666. (
  2667.   Public
  2668.   (
  2669.     float 'WaveAmplitude' (0.1)
  2670.   )
  2671.   Params
  2672.   (
  2673.     Sort = WaterBeach
  2674.     Cull  = TwoSided
  2675.   )
  2676.   
  2677.   
  2678.   HW 'Seq'
  2679.   (
  2680.     Array (Verts 3 FLOAT Vertex)
  2681.     Array (Color 4 BYTE Color)
  2682.     Array (Texture0 2 FLOAT Texture0)
  2683.  
  2684.     ShadeLayer
  2685.     (
  2686.       CGPShader = CGRCWater_DuckWeed
  2687.       CGPSParam ( Name = Ambient Comp = 1 Comp = 1 Comp = 1 Comp = 1)
  2688.       
  2689.       CGVProgram = CGVProgWater_Beach
  2690.       CGVPParam ( Name = CameraPos Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2' Comp = 0.15)
  2691.       //MAIN WAVE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Translate and Scale waves are !!!synchronized!!! except that Scale is a bit lag behind translate to make waves scale down after(!!!) it reaches the sand
  2692.       CGVPParam
  2693.       (
  2694.         Name = TexShift
  2695.         
  2696.         // Translate
  2697.         Comp 'Wave' { Type = sin Level = 0 Amp = 0.0025 Phase = 0.0  Freq = 0.5 }
  2698.         // Scale
  2699.         Comp 'Wave' { Type = sin Level = 1.5 Amp = 0  Phase = 0.15 Freq = 0.1 }
  2700.         // Noise
  2701.         Comp 'Wave' { Type = sin Level = 0.1 Amp = 0  Phase = 0.0  Freq = 0.1 }
  2702.         Comp = 1
  2703.       )
  2704.       
  2705.       Layer '0'
  2706.       (
  2707.         Map      = OBJECTS\Natural\swamp_set\sw_duckweed_a
  2708.         //ClampTexCoords
  2709.         Blend     'SRC_ALPHA ONE_MINUS_SRC_ALPHA'
  2710.         TexColorOp = NoSet
  2711.       )
  2712.     )
  2713.   )
  2714. )
  2715.  
  2716. Shader 'TerrainWaterBeach'
  2717. (
  2718.   Public
  2719.   (
  2720.     float 'WaveAmplitude' (0.1)
  2721.   )
  2722.   Params
  2723.   (
  2724.     Sort = WaterBeach
  2725.     Cull  = TwoSided
  2726.   )
  2727.  
  2728.   HW 'Seq'
  2729.   (
  2730.     Array (Verts 3 FLOAT Vertex)
  2731.     Array (Color 4 BYTE Color)
  2732.     Array (Texture0 2 FLOAT Texture0)
  2733.  
  2734.     ShadeLayer
  2735.     (
  2736.       CGPShader = CGRCWater_Beach
  2737.       CGPSParam ( Name = Ambient Comp = 1 Comp = 1 Comp = 1 Comp = 1)
  2738.       
  2739.       CGVProgram = CGVProgWater_Beach
  2740.       CGVPParam ( Name = CameraPos Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2' Comp = 0.15)
  2741.       //MAIN WAVE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Translate and Scale waves are !!!synchronized!!! except that Scale is a bit lag behind translate to make waves scale down after(!!!) it reaches the sand
  2742.       CGVPParam
  2743.       (
  2744.         Name = TexShift
  2745.         
  2746.         // Translate
  2747.         Comp 'Wave' { Type = sin Level = 0 Amp = 0.25 Phase = 0.0  Freq = 0.1 }
  2748.         // Scale
  2749.         Comp 'Wave' { Type = sin Level = 2 Amp = 0.9  Phase = 0.15 Freq = 0.1 }
  2750.         // Noise
  2751.         Comp 'Wave' { Type = sin Level = 0.2 Amp = 0  Phase = 0.0  Freq = 0.1 }
  2752.         Comp = 1
  2753.       )
  2754.       
  2755.       Layer '0'
  2756.       (
  2757.         Map      = wave1
  2758.         ClampTexCoords
  2759.         Blend     'SRC_ALPHA ONE_MINUS_SRC_ALPHA'
  2760.         TexColorOp = NoSet
  2761.       )
  2762.     )
  2763.  
  2764.     //COPY OF MAIN WAVE!! shifted phase  to make it move different 
  2765.     ShadeLayer
  2766.     (
  2767.       CGPShader = CGRCWater_Beach
  2768.       CGPSParam ( Name = Ambient Comp = 1 Comp = 1 Comp = 1 Comp = 1)
  2769.       
  2770.       CGVProgram = CGVProgWater_Beach
  2771.       CGVPParam ( Name = CameraPos Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2' Comp = 0.15)
  2772.       CGVPParam
  2773.       (
  2774.         Name = TexShift
  2775.         Comp 'Wave' { Type = sin Level = 0 Amp = 0.25 Phase = 0.4 Freq = 0.1 }
  2776.         Comp 'Wave' { Type = sin Level = 2 Amp = 0.9  Phase = 0.55 Freq = 0.1 }
  2777.         Comp 'Wave' { Type = sin Level = 0.1 Amp = 0  Phase = 0.0  Freq = 0.1 }
  2778.         Comp = 1
  2779.       )
  2780.       
  2781.       Layer '0'
  2782.       (
  2783.         Map      = wave1
  2784.         ClampTexCoords
  2785.         Blend     'SRC_ALPHA ONE_MINUS_SRC_ALPHA'
  2786.         TexColorOp = NoSet
  2787.       )
  2788.     )
  2789.  
  2790.     //another COPY OF MAIN WAVE(detail )!! shifted phase  to make it move different 
  2791.     ShadeLayer
  2792.     (
  2793.       CGPShader = CGRCWater_Beach
  2794.       CGPSParam ( Name = Ambient Comp = 1 Comp = 1 Comp = 1 Comp = 1)
  2795.       
  2796.       CGVProgram = CGVProgWater_Beach
  2797.       CGVPParam ( Name = CameraPos Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2' Comp = 0.15)
  2798.       CGVPParam
  2799.       (
  2800.         Name = TexShift
  2801.         Comp 'Wave' { Type = sin Level = 0 Amp = 0.25 Phase = 0.5 Freq = 0.1 }
  2802.         Comp 'Wave' { Type = sin Level = 2 Amp = 0.9 Phase = 0.65 Freq = 0.1 }
  2803.         Comp 'Wave' { Type = sin Level = 0.3 Amp = 0 Phase = 0 Freq = 0.1    }
  2804.         Comp = 0.5
  2805.       )
  2806.       
  2807.       Layer '0'
  2808.       (
  2809.         Map      = water1
  2810.  
  2811.         Blend     'SRC_ALPHA ONE_MINUS_SRC_ALPHA'
  2812.         TexColorOp = NoSet
  2813.       )
  2814.     )
  2815.  
  2816.     // Moving detail layer!!!!!!!!!!!!!!!!!!!
  2817.     ShadeLayer
  2818.     (
  2819.       CGVProgram = CGVProgWater_Beach_Shift
  2820.       CGVPParam ( Name = TexShift Comp = 0 Comp 'time 0.2') // xy = wavepos, z = 0, w = amplitude
  2821.       CGVPParam ( Name = TexScale Comp = 1.25 Comp = 3) // xy = wavepos, z = 0, w = amplitude
  2822.       
  2823.       Layer '0'
  2824.       (
  2825.         Map      = water2.tga
  2826.  
  2827.         Blend     'SRC_ALPHA ONE_MINUS_SRC_ALPHA'
  2828.         TexColorOp = Modulate
  2829.       )
  2830.     )
  2831.   )
  2832. )
  2833.  
  2834. //==============================================================================================================
  2835. //==============================================================================================================
  2836. Shader 'TerrainWaterBeachResearch'
  2837. (
  2838.   Public
  2839.   (
  2840.     float 'WaveAmplitude' (0.1)
  2841.   )
  2842.   Params
  2843.   (
  2844.     Sort = WaterBeach
  2845.     Cull  = TwoSided
  2846.   )
  2847.   
  2848.   HW 'Seq'
  2849.   (
  2850.     Array (Verts 3 FLOAT Vertex)
  2851.     Array (Color 4 BYTE Color)
  2852.     Array (Texture0 2 FLOAT Texture0)
  2853.  
  2854.     ShadeLayer
  2855.     (
  2856.       CGPShader = CGRCWater_Beach
  2857.       CGPSParam ( Name = Ambient Comp = 1 Comp = 1 Comp = 1 Comp = 1)
  2858.       
  2859.       CGVProgram = CGVProgWater_Beach
  2860.       CGVPParam ( Name = CameraPos Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2' Comp = 0.15)
  2861.       //MAIN WAVE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Translate and Scale waves are !!!synchronized!!! except that Scale is a bit lag behind translate to make waves scale down after(!!!) it reaches the sand
  2862.       CGVPParam
  2863.       (
  2864.         Name = TexShift
  2865.         
  2866.         // Translate
  2867.         Comp 'Wave' { Type = sin Level = 0 Amp = 0.25 Phase = 0.0  Freq = 0.1 }
  2868.         // Scale
  2869.         Comp 'Wave' { Type = sin Level = 2 Amp = 0.9  Phase = 0.15 Freq = 0.1 }
  2870.         // Noise
  2871.         Comp 'Wave' { Type = sin Level = 0.2 Amp = 0  Phase = 0.0  Freq = 0.1 }
  2872.         Comp = 1
  2873.       )
  2874.       
  2875.       Layer '0'
  2876.       (
  2877.         Map      = wave2
  2878.         ClampTexCoords
  2879.         Blend     'SRC_ALPHA ONE_MINUS_SRC_ALPHA'
  2880.         TexColorOp = NoSet
  2881.       )
  2882.     )
  2883.  
  2884.     //COPY OF MAIN WAVE!! shifted phase  to make it move different 
  2885.     ShadeLayer
  2886.     (
  2887.       CGPShader = CGRCWater_Beach
  2888.       CGPSParam ( Name = Ambient Comp = 1 Comp = 1 Comp = 1 Comp = 1)
  2889.       
  2890.       CGVProgram = CGVProgWater_Beach
  2891.       CGVPParam ( Name = CameraPos Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2' Comp = 0.15)
  2892.       CGVPParam
  2893.       (
  2894.         Name = TexShift
  2895.         Comp 'Wave' { Type = sin Level = 0 Amp = 0.25 Phase = 0.4 Freq = 0.1 }
  2896.         Comp 'Wave' { Type = sin Level = 2 Amp = 0.9  Phase = 0.55 Freq = 0.1 }
  2897.         Comp 'Wave' { Type = sin Level = 0.1 Amp = 0  Phase = 0.0  Freq = 0.1 }
  2898.         Comp = 1
  2899.       )
  2900.       
  2901.       Layer '0'
  2902.       (
  2903.         Map      = wave2
  2904.         ClampTexCoords
  2905.         Blend     'SRC_ALPHA ONE_MINUS_SRC_ALPHA'
  2906.         TexColorOp = NoSet
  2907.       )
  2908.     )
  2909.  
  2910.     //another COPY OF MAIN WAVE(detail )!! shifted phase  to make it move different 
  2911.     ShadeLayer
  2912.     (
  2913.       CGPShader = CGRCWater_Beach
  2914.       CGPSParam ( Name = Ambient Comp = 1 Comp = 1 Comp = 1 Comp = 1)
  2915.       
  2916.       CGVProgram = CGVProgWater_Beach
  2917.       CGVPParam ( Name = CameraPos Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2' Comp = 0.15)
  2918.       CGVPParam
  2919.       (
  2920.         Name = TexShift
  2921.         Comp 'Wave' { Type = sin Level = 0 Amp = 0.25 Phase = 0.5 Freq = 0.1 }
  2922.         Comp 'Wave' { Type = sin Level = 2 Amp = 0.9 Phase = 0.65 Freq = 0.1 }
  2923.         Comp 'Wave' { Type = sin Level = 0.3 Amp = 0 Phase = 0 Freq = 0.1    }
  2924.         Comp = 0.5
  2925.       )
  2926.       
  2927.       Layer '0'
  2928.       (
  2929.         Map      = water1
  2930.  
  2931.         Blend     'SRC_ALPHA ONE_MINUS_SRC_ALPHA'
  2932.         TexColorOp = NoSet
  2933.       )
  2934.     )
  2935.  
  2936.     // Moving detail layer!!!!!!!!!!!!!!!!!!!
  2937.     ShadeLayer
  2938.     (
  2939.       CGVProgram = CGVProgWater_Beach_Shift
  2940.       CGVPParam ( Name = TexShift Comp = 0 Comp 'time 0.2') // xy = wavepos, z = 0, w = amplitude
  2941.       CGVPParam ( Name = TexScale Comp = 1.25 Comp = 3) // xy = wavepos, z = 0, w = amplitude
  2942.       
  2943.       Layer '0'
  2944.       (
  2945.         Map      = water2.tga
  2946.  
  2947.         Blend     'SRC_ALPHA ONE_MINUS_SRC_ALPHA'
  2948.         TexColorOp = Modulate
  2949.       )
  2950.     )
  2951.   )
  2952. )
  2953.  
  2954. //==============================================================================================================
  2955.  
  2956. //==============================================================================================================
  2957.  
  2958. Shader 'TerrainWaterBeach_FP'
  2959. (
  2960.   Public
  2961.   (
  2962.     float 'WaveAmplitude' (0.1)
  2963.   )
  2964.   Params
  2965.   (
  2966.     Sort = WaterBeach
  2967.     Cull  = TwoSided
  2968.   )
  2969.   HW
  2970.   (
  2971.     Array (Verts 3 FLOAT Vertex)
  2972.     Array (Color 4 BYTE Color)
  2973.     Array (Texture0 2 FLOAT Texture0)
  2974.  
  2975.     ShadeLayer
  2976.     (
  2977.       //CGPShader = CGRCWater_Beach
  2978.       //CGPSParam ( Name = Ambient Comp = 1 Comp = 1 Comp = 1 Comp = 1)
  2979.       
  2980.       //CGVProgram = CGVProgWater_Beach
  2981.       //CGVPParam ( Name = CameraPos Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2' Comp = 0.15)
  2982.       //MAIN WAVE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Translate and Scale waves are !!!synchronized!!! except that Scale is a bit lag behind translate to make waves scale down after(!!!) it reaches the sand
  2983.       /*
  2984.       CGVPParam
  2985.       (
  2986.         Name = TexShift
  2987.         
  2988.         // Translate
  2989.         Comp 'Wave' { Type = sin Level = 0 Amp = 0.25 Phase = 0.0  Freq = 0.1 }
  2990.         // Scale
  2991.         Comp 'Wave' { Type = sin Level = 2 Amp = 0.9  Phase = 0.15 Freq = 0.1 }
  2992.         // Noise
  2993.         Comp 'Wave' { Type = sin Level = 0.2 Amp = 0  Phase = 0.0  Freq = 0.1 }
  2994.         Comp = 1
  2995.       )*/
  2996.       
  2997.       Matrix 'GL_TEXTURE'
  2998.       {
  2999.           TexStage = 0
  3000.         Identity
  3001.         Translate (Comp = 0 Comp 'Wave' { Type = sin Level = 0.1 Amp = 0.25 Phase = 0  Freq = 0.1 } Comp = 0)
  3002.         Scale (Comp=1 Comp 'Wave' { Type = sin Level = 2 Amp = 0.9  Phase = 0.15 Freq = 0.1 } Comp=1)
  3003.       }
  3004.       Layer '0'
  3005.       (
  3006.         Map      = wave1
  3007.         ClampTexCoords
  3008.         Blend     'SRC_ALPHA ONE_MINUS_SRC_ALPHA'
  3009.         TexColorOp = Modulate        
  3010.       )
  3011.     )
  3012.  
  3013.     //COPY OF MAIN WAVE!! shifted phase  to make it move different 
  3014.     ShadeLayer
  3015.     (
  3016.       /*CGPShader = CGRCWater_Beach
  3017.       CGPSParam ( Name = Ambient Comp = 1 Comp = 1 Comp = 1 Comp = 1)
  3018.       
  3019.       CGVProgram = CGVProgWater_Beach
  3020.       CGVPParam ( Name = CameraPos Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2' Comp = 0.15)
  3021.       CGVPParam
  3022.       (
  3023.         Name = TexShift
  3024.         Comp 'Wave' { Type = sin Level = 0 Amp = 0.25 Phase = 0.4 Freq = 0.1 }
  3025.         Comp 'Wave' { Type = sin Level = 2 Amp = 0.9  Phase = 0.55 Freq = 0.1 }
  3026.         Comp 'Wave' { Type = sin Level = 0.1 Amp = 0  Phase = 0.0  Freq = 0.1 }
  3027.         Comp = 1
  3028.       )*/
  3029.       
  3030.       Matrix 'GL_TEXTURE'
  3031.       {
  3032.           TexStage = 0
  3033.         Identity
  3034.         Translate (Comp = 0 Comp 'Wave' { Type = sin Level = 0.1 Amp = 0.25 Phase = 0.1  Freq = 0.1 } Comp = 0)
  3035.         Scale (Comp=1 Comp=2 Comp=1)
  3036.       }
  3037.       Layer '0'
  3038.       (
  3039.         Map      = wave1
  3040.         ClampTexCoords
  3041.         Blend     'SRC_ALPHA ONE_MINUS_SRC_ALPHA'
  3042.         TexColorOp = NoSet
  3043.       )
  3044.     )
  3045.   )
  3046. )
  3047.  
  3048. Shader 'WaterSimple1'
  3049. (
  3050.   HW 'Seq'
  3051.   (
  3052.     ShadeLayer
  3053.     (
  3054.       CGPShader = CGReflectCMap
  3055.  
  3056.       CGVProgram = CGVProgWaterBumpReflCM_PS
  3057.       CGVPParam ( Name = CameraPos Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2')
  3058.       CGVPParam ( Name = Binormal Comp = 0 Comp = -1 Comp = 0 ) // Binormal
  3059.       CGVPParam ( Name = Normal Comp = 0 Comp = 0 Comp = 1 )  // Normal
  3060.       CGVPParam ( Name = TexGenRipple0 Comp = 0.125 Comp = 0 Comp = 0 Comp = 0)  // Ripple texgen
  3061.       CGVPParam ( Name = TexGenRipple1 Comp = 0 Comp = 0.125 Comp = 0 Comp = 0)  // Ripple texgen
  3062.       CGVPParam ( Name = TexShiftRipple Comp 'time 0.06' Comp 'time 0.12' Comp=0)  // xy = ripple uv ADDer
  3063.  
  3064.       CGVPParam ( Name = Matrix InvObjMatrix)
  3065.  
  3066.       Layer '0'
  3067.       (
  3068.         TexType = Base
  3069.         Sequence (Maps = textures/animated/water/caust## Time = 0.05 Loop)
  3070.         TexColorOp = NoSet
  3071.       )
  3072.       Layer '1'
  3073.       (
  3074.         Map = $None
  3075.         TexColorOp = NoSet
  3076.       )
  3077.       Layer '2'
  3078.       (
  3079.         Map = $None
  3080.         TexColorOp = NoSet
  3081.       )
  3082.       Layer '3'
  3083.       (
  3084.         Map = Skys/Sky4/box
  3085.         TexType = Cubemap
  3086.         TexColorOp = NoSet
  3087.       )
  3088.     )
  3089.   )
  3090. )
  3091.  
  3092. Shader 'TerrainWaterBottom'
  3093. (
  3094.   Params
  3095.   (
  3096.     Sort = Opaque
  3097. //    Cull                   = TwoSided
  3098.   )
  3099.   
  3100.   HW 'Seq'
  3101.   (
  3102.     Array (Verts 3 FLOAT Vertex)
  3103.     //Array (Color 4 BYTE Color)
  3104.  
  3105.     ShadeLayer
  3106.     (
  3107.       CGVProgram = CGVProgTerrainCaust
  3108.       CGVPParam ( Name = BaseTexGen0 Comp = 0 Comp 'FromRE[2]' Comp = 0 Comp 'FromRE[0]')  // TexGen S
  3109.       CGVPParam ( Name = BaseTexGen1 Comp 'FromRE[2]' Comp = 0 Comp = 0 Comp 'FromRE[1]')  // TexGen T
  3110.       CGVPParam ( Name = WaterLevel Comp 'WaterLevel')  
  3111.       CGVPParam ( Name = CaustTexGen0 Comp = 0.125 Comp = 0 Comp = 0 Comp 'time 0.06')
  3112.       CGVPParam ( Name = CaustTexGen1 Comp = 0 Comp = 0.125 Comp = 0 Comp 'time 0.12')
  3113.       CGVPParam ( Name = CameraPos Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2' Comp = 0.0125)  // .w - 1 / caustics view dist
  3114.  
  3115.       CGPShader = CGRCTerrain_Caust
  3116.       // Ambient
  3117.       CGPSParam ( Name = Ambient Comp 'WorldColor[0]'  Comp 'WorldColor[1]' Comp 'WorldColor[2]' Comp = 1 )
  3118.       Layer '0'
  3119.       (
  3120.         Map = terrain/water/oceanfloorcolor.bmp
  3121.         TexColorOp = NoSet
  3122.       )
  3123.  
  3124.       Layer '1'
  3125.       (
  3126.         Sequence (Maps = textures/animated/water/causq## Time = 0.05 Loop)
  3127.         TexColorOp = NoSet
  3128.         
  3129.         
  3130.       )
  3131.     )
  3132.   )
  3133. )
  3134.  
  3135.  
  3136. Shader 'TerrainWaterBottom_FP'
  3137. (
  3138.   Params
  3139.   (
  3140.     Sort = Opaque
  3141. //    Cull                   = TwoSided
  3142.   )
  3143.   HW
  3144.   (
  3145.     Array (Verts 3 FLOAT Vertex)
  3146.     //Array (Color 4 BYTE Color)
  3147.  
  3148.     ShadeLayer
  3149.     (
  3150.       /*
  3151.       CGVProgram = CGVProgTerrainCaust
  3152.       CGVPParam ( Name = BaseTexGen0 Comp = 0 Comp 'FromRE[2]' Comp = 0 Comp 'FromRE[0]')  // TexGen S
  3153.       CGVPParam ( Name = BaseTexGen1 Comp 'FromRE[2]' Comp = 0 Comp = 0 Comp 'FromRE[1]')  // TexGen T
  3154.       CGVPParam ( Name = WaterLevel Comp 'WaterLevel')  
  3155.       CGVPParam ( Name = CaustTexGen0 Comp = 0.125 Comp = 0 Comp = 0 Comp 'time 0.06')
  3156.       CGVPParam ( Name = CaustTexGen1 Comp = 0 Comp = 0.125 Comp = 0 Comp 'time 0.12')
  3157.       CGVPParam ( Name = CameraPos Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2' Comp = 0.0125)  // .w - 1 / caustics view dist
  3158.  
  3159.       CGPShader = CGRCTerrain_Caust
  3160.       // Ambient
  3161.       CGPSParam ( Name = Ambient Comp 'WorldColor[0]'  Comp 'WorldColor[1]' Comp 'WorldColor[2]' Comp = 1 )
  3162.       */
  3163.       Layer '0'
  3164.       (
  3165.         Map = terrain/water/oceanfloorcolor.bmp
  3166.         TexColorOp = NoSet
  3167.       )
  3168.  
  3169.       Layer '1'
  3170.       (
  3171.         Sequence (Maps = textures/animated/water/causq## Time = 0.05 Loop)
  3172.         TexColorOp = NoSet
  3173.       )
  3174.     )
  3175.   )
  3176. )
  3177.  
  3178. // Lava Volume Shader
  3179. Shader 'LavaVolume'
  3180. (
  3181.   Public
  3182.   (
  3183.     float 'TillingAmountX' (2.0)
  3184.     float 'TillingAmountY' (2.0)
  3185.     float 'BumpAmountX' (0.02)
  3186.     float 'BumpAmountY' (0.02)
  3187.     float 'MoveSpeedX' (0.2)
  3188.     float 'MoveSpeedY' (0.2)
  3189.     float 'ColorR' (0.8)
  3190.     float 'ColorG' (0.55)
  3191.     float 'ColorB' (0.0)
  3192.     float 'OverlayAmount' (0.32)
  3193.     float 'DetailTillingAmountX' (1.0)
  3194.     float 'DetailTillingAmountY' (1.0)
  3195.     float 'DetailMoveSpeedX' (0.2)
  3196.     float 'DetailMoveSpeedY' (0.2)                               
  3197.     float 'WaveAmplitude' (0.1)    
  3198.   )  
  3199.                   
  3200.   HW 'Seq'
  3201.   (              
  3202.     Array (Verts 3 FLOAT Vertex)
  3203.             
  3204.     ShadeLayer
  3205.     (       
  3206.  
  3207.       CGVProgram  = CGVProgLava
  3208.       CGVPParam ( Name = CameraPos Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2')
  3209.       CGVPParam ( Name = TexShiftRipple User 'MoveSpeedX' User 'MoveSpeedY' Comp 'time 0.01' Comp 'time 0.01') 
  3210.       CGVPParam ( Name = TexGenRipple0 Comp = 0.125 Comp = 0 Comp = 0 Comp = 0) 
  3211.       CGVPParam ( Name = TexGenRipple1 Comp = 0 Comp = 0.125 Comp = 0 Comp = 0) 
  3212.       CGVPParam ( Name = TexDetailScale User 'TillingAmountX' User 'TillingAmountY')
  3213.       CGVPParam ( Name = BumpMatrix User 'BumpAmountX' Comp = 0 Comp = 0 User 'BumpAmountY' )      
  3214.       CGVPParam ( Name = DetailTexParams User 'DetailTillingAmountX' User 'DetailTillingAmountY' User 'DetailMoveSpeedX' User 'DetailMoveSpeedY')
  3215.       CGPShader   = CGRCLava
  3216.       CGPSParam ( Name = Matrix User 'BumpAmountX' Comp = 0 Comp = 0 User 'BumpAmountY' )
  3217.       CGPSParam ( Name = Ambient Comp 'WorldObjColor[0]'  Comp 'WorldObjColor[1]' Comp 'WorldObjColor[2]' Comp = 1)
  3218.       CGPSParam ( Name = LavaColor User 'ColorR'  User 'ColorG' User 'ColorB' User 'OverlayAmount')      
  3219.  
  3220.  
  3221.       Layer '0'
  3222.       (
  3223.         Map = $Diffuse
  3224.         TexColorOp = NoSet 
  3225.       )
  3226.       
  3227.       Layer '1'
  3228.       (                
  3229.         Map = WaterBump.dds        
  3230.         TexColorOp = NoSet
  3231.         TexType = DSDTBump                  
  3232.       )
  3233.  
  3234.       Layer '2'
  3235.       (                
  3236.         Map = Defaults/white_plain_d                       
  3237.         TexColorOp = NoSet       
  3238.       )                  
  3239.     )
  3240.   )  
  3241. )
  3242.  
  3243. // Lava Volume Shader
  3244. Shader 'LavaVolume_FP'
  3245. (
  3246.   Public
  3247.   (
  3248.   )
  3249.   Params
  3250.   (
  3251.     Sort = Water
  3252.     Cull = TwoSided  
  3253.   )
  3254.  
  3255.                  
  3256.   HW 'Seq'
  3257.   (              
  3258.     Array (Verts 3 FLOAT Vertex)
  3259.             
  3260.     ShadeLayer
  3261.     (       
  3262.       Layer '0'
  3263.       (               
  3264.         TexType = Base
  3265.         TexFilter = TriLinear        
  3266.         Sequence (Maps = textures/animated/water/caust## Time = 0.05 Loop)
  3267.                 
  3268.         TexGen               'HW_ObjectLinear'  
  3269.         { 
  3270.           Mask = 3  
  3271.           PlaneS (Comp = 0.06 Comp = 0 Comp = 0 Comp = 0) 
  3272.           PlaneT (Comp = 0 Comp = 0.06 Comp = 0 Comp = 0)   
  3273.         } 
  3274.         
  3275.         RgbGen 'Comp' (Comp =1  Comp =0.6 Comp=0.2 Comp = 1)
  3276.         
  3277.         TexColorOp = AddSigned
  3278.         TexAlphaOp = Replace  
  3279.         TexColorArg0 = Texture        
  3280.         TexColorArg1 = Constant        
  3281.         TexAlphaArg0 = Previous
  3282.         
  3283.         Blend 'ONE SRC_COLOR'  
  3284.         DepthWrite = 0   
  3285.         
  3286.       )      
  3287.     )
  3288.   )  
  3289. )
  3290.  
  3291.  
  3292. // Fire Shader 
  3293. Shader 'FireVolume'
  3294. (
  3295.   Public
  3296.   (
  3297.     float 'BumpAmountX' (0.2)
  3298.     float 'BumpAmountY' (0.02)
  3299.    
  3300.     float 'Saturation' (0.0)
  3301.     float 'Brightness' (0.2)
  3302.     float 'FireOpacity' (1.0)
  3303.  
  3304.     float 'DetailTillingAmountX' (2.0)
  3305.     float 'DetailTillingAmountY' (5.0)
  3306.     float 'DetailMoveSpeedX' (20.0)
  3307.     float 'DetailMoveSpeedY' (0.0)                               
  3308.   )  
  3309.   
  3310.   Params
  3311.   (
  3312.     Sort = TerrainParticles
  3313.   )
  3314.         
  3315.   HW 'Seq'
  3316.   (              
  3317.     Array (Verts 3 FLOAT Vertex)
  3318.     Array (Texture0 2 FLOAT Texture0)    
  3319.     Array (Color 4 BYTE Color)
  3320.                 
  3321.     ShadeLayer
  3322.     (       
  3323.       CGVProgram  = CGVProgFire
  3324.       CGVPParam ( Name = CameraPos Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2')
  3325.       CGVPParam ( Name = TexShiftRipple Comp =1 Comp = 1 Comp 'time 0.01' Comp 'time 0.01') 
  3326.       CGVPParam ( Name = TexGenRipple0 Comp = 0.125 Comp = 0 Comp = 0 Comp = 0) 
  3327.       CGVPParam ( Name = TexGenRipple1 Comp = 0 Comp = 0.125 Comp = 0 Comp = 0)             
  3328.       CGVPParam ( Name = DetailTexParams User 'DetailTillingAmountX' User 'DetailTillingAmountY' User 'DetailMoveSpeedX' User 'DetailMoveSpeedY')
  3329.       
  3330.       CGPShader   = CGRCFire
  3331.       CGPSParam ( Name = Matrix User 'BumpAmountX' Comp = 0 Comp = 0 User 'BumpAmountY' )      
  3332.       CGPSParam ( Name = LavaColor Comp = 1 Comp = 1 Comp = 1 User 'FireOpacity')      
  3333.       CGPSParam ( Name = ColorParams Comp = 1 Comp = 1 User 'Brightness' User 'Saturation')      
  3334.                   
  3335.       Layer '0'
  3336.       (                
  3337.         Map = fire_noise.dds        
  3338.         TexColorOp = NoSet
  3339.       )
  3340.  
  3341.       Layer '1'
  3342.       (                
  3343.         Map = fire_static.dds
  3344.         TexColorOp = NoSet       
  3345.         ClampTexCoords
  3346.         
  3347.         Blend    'SRC_ALPHA ONE_MINUS_SRC_ALPHA'
  3348.         AlphaFunc  = GT0
  3349.         DepthWrite = 0        
  3350.       )                              
  3351.     )
  3352.   )  
  3353. )
  3354.  
  3355. Shader 'TerrainWaterBottomSimple'
  3356. (
  3357.   Params
  3358.   (
  3359.     Sort = Opaque
  3360.     Cull = TwoSided
  3361.   )
  3362.  
  3363.   HW 'Seq'
  3364.   (
  3365.     Array (Verts 3 FLOAT Vertex)
  3366.  
  3367.     ShadeLayer
  3368.     (
  3369.       CGVProgram = CGVProgTexGen_1Unit
  3370.         CGVPParam ( Name = BaseTexGen0 Comp = 0.05 Comp = 0 Comp = 0 Comp = 0 )  // TexGen S
  3371.           CGVPParam ( Name = BaseTexGen1 Comp = 0 Comp = 0.05 Comp = 0 Comp = 0 )  // TexGen T
  3372.       CGVPParam ( Name = ObjMatrix TranspObjMatrix)
  3373.           
  3374.       Layer '0'
  3375.       (
  3376.         //Map = terrain/water/oceanfloorcolor.bmp
  3377.         Map = $FromRE
  3378.         TexColorOp = Replace
  3379.       )    
  3380.     )
  3381.   )
  3382. )
  3383.  
  3384. Shader 'TerrainWaterBottomSimple_FP'
  3385. (
  3386.   Params
  3387.   (
  3388.     Sort = Opaque
  3389.     Cull = TwoSided
  3390.   )
  3391.  
  3392.   HW 'Seq'
  3393.   (
  3394.     Array (Verts 3 FLOAT Vertex)
  3395.  
  3396.     ShadeLayer
  3397.     (
  3398.       Layer '0'
  3399.       (
  3400.         Map = $FromRE
  3401.         TexGen 'HW_ObjectLinear'
  3402.         {
  3403.           Mask = 3
  3404.           PlaneS (Comp = 0.05 Comp = 0 Comp = 0 Comp = 0)
  3405.           PlaneT (Comp = 0 Comp = 0.05 Comp = 0 Comp = 0)
  3406.         }
  3407.           
  3408.         TexColorOp = Replace
  3409.       )    
  3410.     )
  3411.   )
  3412. )
  3413.  
  3414. // generic indoor water shader (using difuse component for color)
  3415. Shader 'WaterVolume'
  3416. (
  3417.   Public
  3418.   (
  3419.     // artists should tweak this..
  3420.     
  3421.     // reflection parameters        
  3422.     float 'ReflTillingAmount' (0.2)       // set reflection texture tilling amount
  3423.     float 'ReflBumpAmount' (0.5)          // set reflection bump amount
  3424.     float 'ReflAmount' (0.5)              // set reflection opacity
  3425.     float 'ReflSpecularAmount' (0.75)     // set reflection specular amount
  3426.  
  3427.     // animation parameters
  3428.     float 'AnimSpeed' (10.0)              // water animation speed
  3429.                 
  3430.     // artists/designers dont need to tweak this, but if they want fell free..            
  3431.                     
  3432.     // refraction parameters
  3433.     float 'RefrTillingAmount' (2.0)       // refraction texture tilling amount
  3434.     float 'RefrBumpAmount' (0.05)         // refraction texture bump amount    
  3435.     
  3436.     float 'LowSpecOpacity' (0.5)
  3437.   )     
  3438.   
  3439.   Params
  3440.   (
  3441.     Sort= Water
  3442.     Cull = TwoSided
  3443.   )
  3444.  
  3445. // no support for perspective correct projected environment bump mapping? then no refraction..
  3446. #ifdef PROJECTEDENVBUMP 
  3447.       
  3448.   // hi/med spec shader                        
  3449.   HW 'Seq'
  3450.   (              
  3451.     Conditions
  3452.     {
  3453.       Vars
  3454.       {        
  3455.         r_WaterReflections = 1
  3456.       }            
  3457.     }
  3458.   
  3459.     Array (Verts 3 FLOAT Vertex)
  3460.      
  3461.     // refraction pass
  3462.     ShadeLayer
  3463.     (    
  3464.       CGVProgram  = CGVProgIndoorWater_final      
  3465.       CGVPParam ( Name = CameraPos Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2')      
  3466.       CGVPParam ( Name = ScreenSize Comp 'ScreenSize pos 0' Comp 'ScreenSize pos 1' Comp = 0 Comp = 0)
  3467.       
  3468.       CGVPParam ( Name = TexShiftRipple Comp = 0 Comp = 0 Comp 'time 0.01' Comp 'time 0.01') 
  3469.       CGVPParam ( Name = TexGenRipple0 Comp = 0.125 Comp = 0 Comp = 0 Comp = 0)  
  3470.       CGVPParam ( Name = TexGenRipple1 Comp = 0 Comp = 0.125 Comp = 0 Comp = 0)  
  3471.       CGVPParam ( Name = TexDetailScale User 'RefrTillingAmount' User 'RefrTillingAmount'  Comp = 0 User 'AnimSpeed')     
  3472.                   
  3473.       CGPShader   = CGRCIndoorWater_final
  3474.       CGPSParam ( Name = Matrix User 'RefrBumpAmount' Comp = 0 Comp = 0 User 'RefrBumpAmount' )
  3475.       CGPSParam ( Name = Ambient Comp 'WorldObjColor[0]'  Comp 'WorldObjColor[1]' Comp 'WorldObjColor[2]' Comp =1 )      
  3476.       CGPSParam ( Name = WaterColor Comp 'DiffuseColor[0]'  Comp 'DiffuseColor[1]' Comp 'DiffuseColor[2]' Comp =1 )
  3477.       
  3478.  
  3479.       Layer '0'
  3480.       (         
  3481.         Map =   fire_noise.dds
  3482.         TexType = DSDTBump  
  3483.       )
  3484.       
  3485.       Layer '1'
  3486.       (
  3487.         Projected
  3488.         Map =  $ScreenTexMap
  3489.                                 
  3490.         TexColorOp = NoSet
  3491.         DepthWrite = 0        
  3492.       )
  3493.     )
  3494.  
  3495.     // reflection pass      
  3496.     ShadeLayer
  3497.     (       
  3498.       CGVProgram  = CGVProgIndoorWaterSpec      
  3499.       CGVPParam ( Name = CameraPos Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2')
  3500.       CGVPParam ( Name = TexShiftRipple Comp = 0 Comp = 0 Comp 'time 0.01' Comp 'time 0.01') 
  3501.       CGVPParam ( Name = TexGenRipple0 Comp = 0.125 Comp = 0 Comp = 0 Comp = 0) 
  3502.       CGVPParam ( Name = TexGenRipple1 Comp = 0 Comp = 0.125 Comp = 0 Comp = 0) 
  3503.       CGVPParam ( Name = TexDetailScale User 'ReflTillingAmount' User 'ReflTillingAmount'  Comp = 0 User 'AnimSpeed')
  3504.       
  3505.       CGPShader   = CGRCIndoorWaterSpec
  3506.       CGPSParam ( Name = Matrix User 'ReflBumpAmount' Comp = 0 Comp = 0 User 'ReflBumpAmount' )
  3507.       CGPSParam ( Name = Ambient Comp 'WorldObjColor[0]'  Comp 'WorldObjColor[1]' Comp 'WorldObjColor[2]' User 'ReflSpecularAmount' )      
  3508.       CGPSParam ( Name = WaterColor Comp 'DiffuseColor[0]'  Comp 'DiffuseColor[1]' Comp 'DiffuseColor[2]' User 'ReflAmount')  
  3509.  
  3510.       Layer '0'
  3511.       (        
  3512.         Map =  fire_noise.dds
  3513.         TexType = DSDTBump  
  3514.       )
  3515.  
  3516.       Layer '1'
  3517.       (                      
  3518.         Map = Defaults/white_plain_d                      
  3519.         TexColorOp = NoSet               
  3520.         Blend    'SRC_ALPHA ONE_MINUS_SRC_ALPHA'
  3521.       )            
  3522.     )
  3523.   )  
  3524.   
  3525. #endif
  3526.   
  3527.   // render low spec water..
  3528.   LOWSPEC_WATER_SHADER    
  3529. )
  3530.  
  3531.  
  3532. // indoor water volume, using static reflection environment cube mapping + refraction (alternate version to: TemplBumpReflCM)
  3533. // (using difuse component for color) and cube map amount
  3534. Shader 'WaterVolumeBumpReflCM'
  3535. (
  3536.   Public
  3537.   (
  3538.     // artists should tweak this..
  3539.     float 'BumpScale' (0.2)                             
  3540.     float 'ReflAmount' (0.5)              // set reflection opacity            
  3541.     
  3542.     // artists/designers dont need to tweak this, but if they want fell free..     
  3543.     
  3544.     // refraction parameters
  3545.     float 'RefrTillingAmount' (2.0)       // refraction texture tilling amount
  3546.     float 'RefrBumpAmount' (0.05)         // refraction texture bump amount
  3547.     
  3548.     // animation parameters
  3549.     float 'AnimSpeed' (20.0)              // water animation speed
  3550.     
  3551.     float 'LowSpecOpacity' (0.5)
  3552.   )
  3553.   
  3554.   Params
  3555.   (
  3556.     Sort = Water
  3557.     Cull = TwoSided
  3558.   )
  3559.  
  3560. // no support for perspective correct projected environment bump mapping? then no refraction..
  3561. #ifdef PROJECTEDENVBUMP 
  3562.   // hi/med spec shader       
  3563.   HW 'Seq'
  3564.   (  
  3565.     Conditions
  3566.     {
  3567.       Vars
  3568.       {        
  3569.         r_WaterReflections = 1
  3570.       }            
  3571.     }
  3572.       
  3573.     // refraction pass
  3574.     ShadeLayer
  3575.     (    
  3576.       CGVProgram  = CGVProgIndoorWater_final      
  3577.       CGVPParam ( Name = CameraPos Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2')      
  3578.       CGVPParam ( Name = ScreenSize Comp 'ScreenSize pos 0' Comp 'ScreenSize pos 1' Comp = 0 Comp = 0)
  3579.       
  3580.       CGVPParam ( Name = TexShiftRipple Comp = 0 Comp = 0 Comp 'time 0.01' Comp 'time 0.01') 
  3581.       CGVPParam ( Name = TexGenRipple0 Comp = 0.125 Comp = 0 Comp = 0 Comp = 0)  
  3582.       CGVPParam ( Name = TexGenRipple1 Comp = 0 Comp = 0.125 Comp = 0 Comp = 0)  
  3583.       CGVPParam ( Name = TexDetailScale User 'RefrTillingAmount' User 'RefrTillingAmount'  Comp = 0 User 'AnimSpeed')     
  3584.                   
  3585.       CGPShader   = CGRCIndoorWater_final
  3586.       CGPSParam ( Name = Matrix User 'RefrBumpAmount' Comp = 0 Comp = 0 User 'RefrBumpAmount' )
  3587.       CGPSParam ( Name = Ambient Comp 'WorldObjColor[0]'  Comp 'WorldObjColor[1]' Comp 'WorldObjColor[2]' Comp =1 )      
  3588.       CGPSParam ( Name = WaterColor Comp 'DiffuseColor[0]'  Comp 'DiffuseColor[1]' Comp 'DiffuseColor[2]' Comp =1 )
  3589.  
  3590.       Layer '0'
  3591.       (         
  3592.         Map =   fire_noise.dds
  3593.         TexType = DSDTBump  
  3594.       )
  3595.       
  3596.       Layer '1'
  3597.       (
  3598.         Projected
  3599.         Map =  $ScreenTexMap
  3600.                         
  3601.         TexColorOp = NoSet
  3602.         DepthWrite = 0        
  3603.       )
  3604.     )
  3605.     
  3606.     // reflection pass
  3607.     ShadeLayer
  3608.     (
  3609.       CGPShader = CGWaterVolumeReflCM
  3610.       CGPSParam ( Name = Ambient Comp 'WorldObjColor[0]'  Comp 'WorldObjColor[1]' Comp 'WorldObjColor[2]' Comp =1 )      
  3611.       CGPSParam ( Name = WaterColor Comp 'DiffuseColor[0]'  Comp 'DiffuseColor[1]' Comp 'DiffuseColor[2]' User 'ReflAmount' )
  3612.       
  3613.       CGVProgram = CGVProgWaterVolumeReflCM
  3614.       CGVPParam ( Name = CameraPos Comp 'OSCameraPos pos 0' Comp 'OSCameraPos pos 1' Comp 'OSCameraPos pos 2')
  3615.       CGVPParam ( Name = ObjToCubeSpace InvObjMatrix)
  3616.       CGVPParam ( Name = BumpScale User 'BumpScale')      
  3617.       CGVPParam ( Name = AnimProperties Comp 'time 0.01' Comp 'time 0.01' Comp = 1 User 'AnimSpeed')
  3618.  
  3619.       Layer '0'
  3620.       (
  3621.         Map = $Bump
  3622.         TexType = BumpMap
  3623.         TexColorOp = NoSet
  3624.       )
  3625.       
  3626.       Layer '1'
  3627.       (
  3628.         Map = $None
  3629.         TexColorOp = NoSet
  3630.       )
  3631.       
  3632.       Layer '2'
  3633.       (
  3634.         Map = $None
  3635.         TexColorOp = NoSet        
  3636.       )
  3637.       
  3638.       Layer '3'
  3639.       (
  3640.         Map = $Cubemap
  3641.         TexType = Cubemap
  3642.         TexColorOp = NoSet
  3643.         Blend    'SRC_ALPHA ONE_MINUS_SRC_ALPHA'        
  3644.       )      
  3645.     )         
  3646.   )
  3647. #endif
  3648.   
  3649.   // render low spec water..
  3650.   LOWSPEC_WATER_SHADER    
  3651. )